Skip to main content

Transport Strategy

OpenRoIS deliberately separates messages from transport, so the right transport is used at each boundary rather than forcing one everywhere.

BoundaryTransportRationale
Remote client to GatewayWebSocket + TLSNAT/firewall friendly, browser-native, easy auth, async events. Matches the spec's Annex F.2.3 WebSocket example.
Gateway to avatar (same process)In-process callsZero serialization and latency. Ideal for Unity, Godot, or Web hosts.
Gateway to distributed servicesgRPCTyped, cross-language, efficient. Good for GPU/AI services.
Gateway to robot fleetROS 2 / DDSReliable pub/sub, QoS, discovery, ecosystem (Nav2, perception).
Media (camera/mic or rendered)WebRTC (SRTP/DTLS)Built-in NAT traversal (ICE/STUN/TURN), adaptive bitrate, encrypted, browser-native.

These are complementary, not competing. In-process, gRPC, and DDS each solve a different host boundary. WebSocket solves the remote control boundary. WebRTC solves real-time media. Each is selected by the active BusAdapter at Layer 3, except WebSocket (always the remote edge) and WebRTC (always the media plane).