This repo contains a fork of Google's WebRTC codebase (referred below as libwebrtc).
This fork is maintained by LiveKit and Flutter WebRTC.
libwebrtc has been the de-facto implementation to the WebRTC standard, having been optimized for use in Chrome and Meet, the primary internal applications leveraging WebRTC.
As we set out to build a general-purpose framework that can power a wide range of real-time video and audio applications, we found the need to make improvements to libwebrtc, particularly when it's used as an SDK inside other applications. Some of the changes we've made include:
Some of these patches make sense to be contributed back to Chromium, especially those relating to standards-compliant behavior. In such instances, LiveKit actively merges these changes back upstream.
However, it's considerably more challenging to contribute changes that aren't covered by standards. It's commonplace to see issues and PRs stagnate for years without resolution because reaching a consensus on the correct behavior is difficult. It's also understandable that Google would prioritize their engineering efforts on issues that directly benefit their product lines.
Because of these reasons, we've opted to maintain our own fork with those improvements. We are keeping this fork open-source so that others can also benefit from it.
This is not a hard fork. We periodically synchronize with WebRTC releases and reapply our patches to HEAD. We don't intent for it to diverge significantly from the main tree.
We will publish pre-compiled binary SDKs for iOS and Android. Refer to these repos for installation instructions.