finds.dev← search

// the find

versatica/mediasoup-client

★ 662 · TypeScript · ISC · updated Jun 2026

mediasoup client side JavaScript library

The browser-side counterpart to the mediasoup SFU server. It handles WebRTC transport negotiation, SDP manipulation, and codec capability exchange so you don't have to wrestle with RTCPeerConnection directly. Aimed at developers building their own conferencing or broadcast infrastructure on top of mediasoup.

The handler-per-browser-version architecture (Chrome74, Chrome111, Firefox120, Safari12, ReactNative106) is the right call — WebRTC SDP quirks vary enough between browser generations that a single abstraction would be a lie. The SDP layer is internal and not exposed to the user, which means the API stays in terms of producers and consumers rather than SDP blobs. TypeScript throughout with proper type exports, so IDE support is actually useful. Active maintenance (last push two days ago) from the original authors, not a project that got handed to strangers.

The signaling layer is entirely your problem — the library hands you DTLS parameters and expects you to relay them to the server and back, with no guidance on transport, ordering, or error recovery beyond the callback/errback pattern in the README. Per-browser handler files mean you're implicitly pegged to specific browser behavior snapshots; when Chrome 130 changes something, there's no obvious upgrade path short of waiting for a new handler file. The test suite lives in a single test.ts file with fake handlers, so there's essentially no real-browser integration testing in CI — bugs in actual SDP negotiation require you to catch them yourself. Reactor Native support is versioned (106) and may lag behind newer RN releases.

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 →