// the find
versatica/mediasoup
Cutting Edge WebRTC Video Conferencing
mediasoup is a server-side SFU (Selective Forwarding Unit) for WebRTC, available as a Node.js module and Rust crate. The C++ worker process handles the actual media — ICE, DTLS, RTP/RTCP, congestion control — while Node.js/Rust provide the control API. It's for developers building video conferencing or live streaming infrastructure who want low-level control without reimplementing WebRTC internals.
The signaling-agnostic design is the right call — you wire up your own WebSocket/HTTP signaling and mediasoup stays out of it, which means it fits any architecture. The C++ worker using libuv and a fork of libwebrtc's GoogCC congestion control is production-grade; this isn't a toy implementation. Dual Node.js/Rust APIs with parity is genuinely useful — the Rust crate is a first-class citizen, not an afterthought. FlatBuffers for worker IPC (visible in the fbs utilities) is a smart choice for a hot path that would otherwise serialize JSON thousands of times per second.
The low-level API is a double-edged sword: you get full control but you're also responsible for everything above the media layer — room management, participant state, reconnection logic, recording, TURN provisioning. Most teams end up writing a significant framework on top before they can ship anything. The worker is a subprocess you communicate with over IPC, which means debugging failures in production involves correlating logs across two runtimes. The v3 branch has been the stable line for years and v4 has been in motion but not yet released, so there's uncertainty about migration cost when it lands. Documentation covers the API well but is thin on operational guidance — how to size worker pools, what failure modes look like under load, how to handle worker crashes gracefully.