docs/Bridge/Overview

Bridge Overview

REST and WebSocket bridge for non-Rust clients.

The bridge exposes Subway's P2P capabilities over HTTP and WebSocket. Any language that can make HTTP requests or open a WebSocket can use Subway.

Why a bridge?#

Subway's core is Rust + libp2p. The bridge lets you use Subway from:

  • JavaScript/TypeScript — via WebSocket
  • Python — via REST API
  • Any HTTP client — via REST endpoints
  • Browsers — via WebSocket

Architecture#

The BridgeServer runs REST and WebSocket on a single actix-web port (default: 9002).

Your App
REST / WS
Bridge Server
actix-web
P2P
Subway Mesh
libp2p

The production relay at relay.subway.dev runs a bridge agent (bridge.relay) — REST on port 9001 and WebSocket on port 9002 (wss://relay.subway.dev/ws).

Two access paths#

PathURLUse case
Relay RESThttp://localhost:9002/v1/*Quick integration, shared bridge agent
Standalone bridgesubway bridge --port 9002Own bridge agent, full WS support

The relay REST bridge uses a shared bridge.relay agent. The standalone bridge creates a per-connection agent via WebSocket.