Repository navigation
Prebuilt distributions
This repository is not the only project solving this problem. Several others build the WebRTC native libraries and publish the binaries, some covering platforms this one does not.
Worth knowing about for three reasons: to cross-check a build that is behaving oddly, to cover a platform we do not build, and to decide honestly whether maintaining our own pipeline still earns its keep.
Figures are a snapshot taken 2026-09-06 and will drift. "Last push" is the signal that matters — a WebRTC builder that has not moved in a year is tracking a Chromium milestone nobody ships.
The closest peers to this repository.
| Project | ★ | Licence | Last push | Platforms |
|---|---|---|---|---|
| crow-misia/libwebrtc-bin | 226 | Apache-2.0 | 2026-08-21 | Android, iOS, Linux x64/arm/arm64, macOS x64/arm64, Windows x86/x64 |
| shiguredo-webrtc-build/webrtc-build | 289 | Apache-2.0 | 2026-09-04 | Android, iOS, macOS arm64, Windows x64, Ubuntu 20.04–26.04 x86_64/armv8, Raspberry Pi OS armv8, Jetson |
| webrtc-sdk/webrtc | 444 | BSD-3-Clause | 2026-09-04 | Fork with prebuilt releases; the upstream behind LiveKit and flutter-webrtc |
crow-misia/libwebrtc-bin is the most direct comparison. Its releases are versioned
<milestone>.<branch>.x.y — the current one is 152.7977.0.0, the same branch this repository
resolves to. If a build here fails and you need to know whether the branch itself is at fault,
that is the fastest cross-check available.
shiguredo-webrtc-build has the widest platform coverage of anything listed here, including
Jetson and Raspberry Pi. Its documentation is largely in Japanese.
| Project | ★ | Licence | Last push | Notes |
|---|---|---|---|---|
| stasel/WebRTC | 628 | see repo | 2026-09-01 | iOS/macOS XCFramework via Swift Package Manager and CocoaPods; the best-known Apple distribution |
| livekit/webrtc-xcframework | 33 | MIT | 2026-09-05 | XCFramework built from the webrtc-sdk fork |
| alexpiezo/WebRTC | 133 | see repo | 2021-11-09 | Widely linked, but unmaintained for years — listed so it is recognised as stale |
stasel/WebRTC is the reference point should a native AppKit target ever be needed — it
distributes the ObjC framework that our macOS .dylib lacks. WebRTCme does not need one today;
see Platform layers.
Not builders exactly — they wrap WebRTC's C++ API in a flat C ABI so it can be called by P/Invoke,
FFI or similar. The same problem WebRtcInterop/ in this repository solves; see
Interop ABI for why we solve it ourselves rather than adopting one.
| Project | ★ | Licence | Last push | Notes |
|---|---|---|---|---|
| webrtc-sdk/libwebrtc | 637 | MIT | 2026-09-03 | C++ wrapper for binary release, used by flutter-webrtc desktop |
This is the project WebRtcInterop/ was originally started from in 2023 —
WebRtcInterop/NOTICE still carries its MIT notice. Nothing of it survives in the current
implementation, which was written from scratch against the ABI contract, but its header set remains
the best available blueprint for the API shape a later slice should expose.
These build WebRTC as part of something else. Useful mainly as worked examples of build configuration.
| Project | ★ | Licence | Last push | Notes |
|---|---|---|---|---|
| signalapp/ringrtc | 632 | AGPL-3.0 | 2026-09-04 | Signal's calling stack; carries its own WebRTC patches |
| Unity-Technologies/com.unity.webrtc | 853 | see repo | 2026-08-18 | Unity package with native plugins per platform |
| jitsi/webrtc | 114 | see repo | 2026-04-16 | Mirror maintained for building react-native-webrtc |
| flutter-webrtc/flutter-webrtc | 4485 | MIT | 2026-09-04 | Consumes the webrtc-sdk builds rather than building its own |
These do not build Google's WebRTC at all — they reimplement the protocols. Listed because they are frequently mistaken for alternatives to a build, and because WebRTCme already depends on one.
| Project | ★ | Language | Notes |
|---|---|---|---|
| sipsorcery-org/sipsorcery | 1937 | C# |
Used by WebRTCme.Bindings.SipSorcery for desktop |
| pion/webrtc | 16759 | Go | The most widely used independent implementation |
| webrtc-rs/webrtc | 5143 | Rust | Port of Pion |
| algesten/str0m | 620 | Rust | Sans-I/O design |
An independent implementation sidesteps the whole build problem — no depot_tools, no 30 GB
checkout, no patching. The trade-off is that it implements the protocols rather than shipping
Google's media engine, so the audio processing, bandwidth estimation and codec integration are
different code with different maturity.
Every gap described in Platform layers is a property of which GN target was
built, not of who built it. A raw C++ webrtc target from any of these projects has the same
missing H.264, because that comes from proprietary_codecs defaulting false.
The exceptions are the projects that build the sdk/ targets — the Apple distributions above, and
the Android outputs of the cross-platform builders. Those carry the integration layer, which is
what actually closes the gaps.
So the question "should we keep building our own?" is really two questions: whether we want control over the branch and the shared-library patch (which these mostly do not provide — they ship static libraries or platform frameworks), and whether we would rather consume the SDK targets than the raw core. The second is the more interesting one.
- Platform layers — what any given artifact actually contains
- Branch selection — how this repository picks a WebRTC version
Using it
Building on it
Reference
When it breaks