gitmyhub

webrtc

Go ★ 17k updated 23h ago

Pure Go implementation of the WebRTC API

Pion WebRTC is a pure Go implementation of the browser WebRTC API for sending audio, video, and data directly between two devices in real time, no C bindings, runs anywhere Go runs including embedded devices.

GoDTLSSRTPICESTUNTURNsetup: hardcomplexity 4/5

Pion WebRTC is a pure Go implementation of the WebRTC API, the open standard browsers use for sending audio, video, and arbitrary data directly between two devices in real time. WebRTC is what powers things like video calls and live screen sharing in the browser; this library lets you do the same thing from a Go program on a server, an embedded device, or anywhere else Go runs.

The way it works is by providing a Go version of the same building blocks the browser exposes — peer connections, data channels, and media tracks — along with the underlying machinery that gets two peers talking to each other through firewalls and NATs (ICE, STUN, TURN), and the secure transports that protect the traffic in flight (DTLS for data, SRTP for media). Because the project is written in pure Go with no C bindings required, it runs across a wide range of operating systems and CPU architectures, including Windows, macOS, Linux, FreeBSD, iOS, Android and even WebAssembly in the browser.

You would reach for it if you want to send a webcam stream from a device to a browser without an extra server, build a video conferencing backend, securely move data peer-to-peer between two servers without a message broker, remotely control a robot while streaming its cameras, or record and process media server-side. It is MIT-licensed, currently on a v4 release, and the maintainers run an active Discord for help. The full README is longer than what was provided.

Where it fits