finds.dev← search

// the find

mycrl/turn-rs

★ 513 · Rust · MIT · updated Sep 2026

A pure rust implemented turn server.

A pure-Rust TURN/STUN server built specifically for WebRTC media relay, not a general-purpose coturn replacement. It targets the subset of RFC 5766/6062/6156 that WebRTC actually needs, plus a gRPC API for external session control. Good fit for anyone running WebRTC infrastructure who wants a lean relay and is comfortable operating something younger than coturn.

The scope discipline is the best part — the README explicitly says it isn't trying to be feature-complete like coturn, it only implements what WebRTC relay needs, and that shows in a codebase small enough to actually read (src/ is a few thousand lines across codec/server/service). The gRPC API for event notification and external session management is a real feature coturn doesn't have out of the box. Virtual port allocation instead of binding real OS ports avoids ephemeral port exhaustion at scale, which is a legitimate architectural win for a relay handling many concurrent allocations. It has actual protocol conformance tests with binary STUN/TURN message fixtures (tests/samples/*.bin), not just unit tests on internal functions.

The throughput numbers (40M msgs/sec, 600k allocations/sec, <35us latency) are stated with no benchmark methodology, hardware spec beyond 'my Raspberry Pi 4', or reproducible bench script visible outside benches/stun.rs — treat them as marketing until you run your own load test. Only long-term credential auth is supported, so if you need short-term credentials or per-session dynamic auth beyond a static list, you're out of luck. No TLS/DTLS for the UDP transport (only TCP interfaces can be wrapped in TLS), which matters if you're relaying over untrusted networks. There's no mention of clustering, HA, or state persistence — if the process dies, every active allocation and permission is gone, and nothing in the docs addresses running this behind a load balancer or in a multi-node setup.

View on GitHub → Homepage ↗

// 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 →