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#
| Path | URL | Use case |
|---|---|---|
| Relay REST | http://localhost:9002/v1/* | Quick integration, shared bridge agent |
| Standalone bridge | subway bridge --port 9002 | Own 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.