finds.dev← search

// the find

feross/simple-peer

★ 7,796 · JavaScript · MIT · updated Jun 2024

📡 Simple WebRTC video, voice, and data channels

simple-peer wraps the WebRTC API into a Node.js-style EventEmitter/Duplex stream interface, handling offer/answer/ICE plumbing so you don't have to. It works in both browser and Node (via the wrtc package). The target audience is developers building P2P apps who want to skip the RTCPeerConnection ceremony.

The stream interface is genuinely well-designed — inheriting from Duplex means you get backpressure, piping, and buffering for free on the data channel. The sdpTransform escape hatch covers most 'I need to tweak the SDP' cases without forking. Battle-tested: WebTorrent and a long list of real production apps have run on this. The trickle ICE support with a sensible default makes connection setup fast without extra configuration.

Last commit is mid-2024 and the repo has the feel of maintenance mode — 300+ open issues, several around renegotiation and Firefox quirks that have been open for years. No built-in signaling; you're on your own for the websocket server, which is the part that trips up most newcomers. Full-mesh topology is the only pattern the README addresses — anything more complex (SFU, tree overlay) you're implementing yourself. The Node.js wrtc package dependency is heavy and has its own build pain on some platforms.

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 →