finds.dev← search

// the find

johanhelsing/matchbox

★ 1,125 · Rust · Apache-2.0 · updated Jun 2026

Painless peer-to-peer WebRTC networking for rust wasm (and native!)

Matchbox abstracts away the WebRTC signaling handshake so Rust WASM (and native) apps can open peer-to-peer data channels with a few lines of code. The primary audience is Bevy game developers who want rollback netcode via GGRS without running a relay server. The signaling server is a thin coordinator — once peers connect, traffic is direct.

The socket API is genuinely minimal: hand it a signaling URL, await the message loop, send bytes. No ICE candidate management leaks into your game code. The bevy_matchbox integration tracks Bevy's release cadence tightly — the compatibility table goes back to Bevy 0.10 and is already on 0.18, which is more disciplined than most ecosystem crates. The signaling library is split from the server binary, so you can embed custom topologies (the iroh-gossip example shows this works in practice). Reliable and unreliable channels are both supported with configurable ordering, which matters for games that mix authoritative game state with fire-and-forget inputs.

Full-mesh topology means connection count grows as O(n²) — 8 players means 28 peer connections. There's no built-in client-server topology for larger lobbies, and the custom signaler path requires you to wire that up yourself. TURN relay fallback isn't handled by Matchbox at all; if NAT traversal fails, you're on your own, which is a real production problem behind symmetric NATs. The project is tightly coupled to the Bevy/GGRS ecosystem — if you're not using either, you're essentially just using matchbox_socket raw, and the docs thin out fast outside that path. No authentication or room authorization on the signaling server; anyone who knows your signaling URL can join any room by name.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →