libWebRTC is Google’s implementation for a WebRTC client. In many cases, when people refer to WebRTC implementation, what they mean is libWebRTC. The implementation became so ubiquitous and synonymous with WebRTC that the distinction isn’t always made.
libWebRTC is a permissive open source implementation of the WebRTC standard specification and the most popular WebRTC stack used today.
libWebRTC is written in C/C++ programming languages in order to maintain a high level of code portability across devices and operating systems. It has been adopted by all modern browser vendors and variants of the main Google implementation of libWebRTC are part of Google Chrome, Microsoft Edge, Mozilla Firefox and Apple Safari.
libWebRTC is meticulously maintained by Google. Contributing to libWebRTC as a non-Google employee is challenging and requires a high degree of effort. This is due to the use of the code inside the Chrome browser, which has a reach of billions of users.
Since it is geared towards integration into Chrome, the build system provided out of the box by libWebRTC isn’t the nicest or simplest to use.
There are several alternatives to the libWebRTC implementation but all of the alternatives are lacking in key areas:
- Completeness. libWebRTC is the most extensive implementation of WebRTC. Most other implementations don’t offer the same level of support and interoperability for the more advanced features. Sometimes, features such as bandwidth estimation and forward error correction mechanisms are lagging behind in 3rd party implementations
- The de facto standard. When libWebRTC doesn’t behave as the standard does, everyone else needs to align with this implementation – simply because this is what gets used by all web browsers.
- Interoperability. Since libWebRTC is embedded in all browsers, third party implementations will have more interoperability issues in front of browsers than the libWebRTC implementation. Simply because they aren’t use by the browser vendors
- Peripherals and codecs. Many third party implementations focus on the network stack itself and less in connecting to peripherals such as camera and microphone. Many still don’t include any voice and video codecs in their implementation
- Time. libWebRTC is the oldest and most maintained implementation of WebRTC. All other implementations were introduced only later. This means libWebRTC became widely known and popular even before any alternative came to existence
- Performance. libWebRTC is well optimized. Google spent a lot of time and energy throughout the years in optimizing the media pipelines inside the implementation and to make sure they work well across a variety of hardware configurations
- Manpower. libWebRTC is maintained by a fairly large team of people who wrote the code and have been working on it for a very long time – in some cases even before it became known as libWebRTC. None of the alternatives exhibits that level of effort
Due to the above reasons, libWebRTC is still the most popular alternative for client side implementations of WebRTC. There are times when its alternatives might be better suited for the job though.
We consider libWebRTC to be in maintenance mode. Mainly due to the slowing down of code commits into its codebase in written years. You can read more on these in my WebRTC predictions for 2025.
The source code of libWebRTC can be found in Google’s source site.