// the find
feross/simple-peer
📡 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.