DocumentationAbout MeContact

WebRTC Top 100 Open-Source projects for 2023

By Olivier Anguenot
Published in dev
August 25, 2023
5 min read

Table Of Contents

1
How is it organized?
2
Top WebRTC Stacks
3
Top Complete WebRTC solutions
4
Top WebRTC Media Servers
5
Top TURN servers
6
Top WebRTC Signaling servers
7
Top Other WebRTC libraries
8
Ready for using WebRTC Open-Source?
WebRTC Top 100 Open-Source projects for 2023

The WebRTC Open-Source ecosystem is huge and continues to grow day after day. It covers a lot of things: Browsers, desktops, mobile devices, servers, IoT, etc…

From a single library that offers one WebRTC function like recording an audio file to a full communication platform ready to be deployed, you have quite everything you need. As a developer, it is like doing the shopping at the supermarket!

On my own, and for more than one year, I started to enumerate some great WebRTC libraries I found over time. The goal was not to make a list, but rather I was interested in discovering new things and comparing different solutions. I was often asked “what solution should I use for doing…” and most of the time the topic was new to me too :-) so this was a way to discover new libraries and open source components.

Recently, I have ordered this list of WebRTC Open-Source into a top 100 and thought that it could be interesting to share it. This is not a “Hall of Fame” nor the list of nominees for the “Oscar” but just a list of WebRTC Open source software that covers most of the worries of today.

Note: I lied a little, there are less than 100 libraries listed :-)

How is it organized?

This Top 100 is split into several categories:

  • The WebRTC stacks
  • The Media platforms
  • The Media Servers
  • The Turn servers
  • The Signaling servers
  • The standalone libraries

For each category, I tried to order the open-source by following the number of stars in GitHub and the growth during the past year (since August 2022).

I also tried to build my own WebRTC-Developers quadrant for each category. Remember, I’m not from Gardner 😎 nor an analyst, this is my perception today and a way of opening up discussions, getting feedback and maybe looking at other projects I might have missed. 🙈

Top WebRTC Stacks

This first part targets the existing WebRTC stacks. I already cover the stacks more in details in the article Did I choose the right WebRTC stack?.

Top100: Stacks
Webrtc Developers Quadrant: Stacks 2023


Here are some additional details for each stack.

StacksStarsGrowthUsage
LibWebRTC??C/C++
Browsers
Mobile
Desktop
Pion11kHighGo
Server
IoT
React-Native WebRTC4,3kMediumJavaScript
Mobile
Flutter3,7kMediumDart
Mobile
AIORTC3,5kMediumPython
Server
IoT
WebRTC.rs3,2kVery HighRust
Server
Node-WebRTC (2)2,6k=Node.js
Server
LibDataChannel1,2kVery HighNode.js
Server
SipSorcery1,1kVery HighC#
Desktop
Server
Unity/Xbox
RawRTC (1)0,36kLowC/C++
Native
Werift (3)O,33kVery HighNode.js
Server

Even if we can’t compare with the original LibWebRTC, there is a significant growth of other stacks that run outside of the browser and in environments less accessible for the Google’s stack.

Pion is the one who tracts most of the interest. Sean DuBois, the original author behind Pion has succeeded to build a great community and there is some exciting new use cases that emerged recently such as adding the possibility to stream live using WebRTC in OBS Add WebRTC (WHIP) output support. If I have the opportunity, this is the one I would like to use. But I need to first learn Go.

For the others, at ALE, we use SipSorcery among others for our Rainbow C# SDK. It allows our developers to build native applications for Desktop and Server with WebRTC capabilities. Such as audio/video P2P and group calls as well as hybrid calls through our WebRTC Gateway or our Rainbow Hub Cloud PBX. We have also some great projects targeting the Metaverse/VR/AR world through Unity.

For our Rainbow mobile applications as well as our mobile SDK, we use LibWebRTC. We also offer a React-Native SDK for those who want but as RT mobile applications are complicated to develop (native call integration, background mode, push, …), we prefer using a native language for our UCaaS clients and optimize them for each platform for providing the best possible experience.

(1) RawRTC is inactive (2) Node-WebRTC is inactive (3) Werift is not complete and at the same level as others.


Top Complete WebRTC solutions

Complete solutions are WebRTC-based collaborative and/or video platforms that offer both the server side and end-user applications. Here, IT/DevOps rather than development skills are required. Some are not based on video at all, but all use WebRTC or part of WebRTC to work.

Top100: Solutions
Webrtc Developers Quadrant: Solutions 2023


And the details:

Media PlatformsStarsGrowthUsage
Rocket.chat36,1kHighJS/Node.js
Collaboration and Communication/Chat OmniChannel + Video (using Jitsi/BBB/…)
WebTorrent28,1kMediumJS/Node.js
WebTorrent/Video Streaming
Mattermost26,1kHighGo(Pion)/JS
Collaboration and Communication Video platform
Jitsi Meet20,1kMediumJava/JS/Native
WebRTC conference server to host + applications and SDK
SnapDrop16kMediumJS/PWA
Share files like AirDrop
Tinode10,5kMediumGo (server)
JS/Swift/Android/Python
Instant messaging server
BigBlueButton8kLowFreeswitch/Kurento
Virtual Classroom Software (integrated to Moodle)
ShareDrop6,7kHighJavaScript
Files sharing like AirDrop
WebWormHole1,7kLowWebAssembly/Go
Data sharing
OpenVidu1,6kLowKurento
Video platform with ready to integrate video components
Briefing1,2kLowNode.JS/Web based on Simple-Peer/IOS client
Mesh conference server
Galene0,8kMediumGo (Pion)/JS
Easy to deploy SFU Video Server with JS client (Android in progress)

Rocket.chat and MatterMost are the open-source communication platforms with the most of integrated features. If you need more than a video server, there are the leaders.

BBB is a great alternative for Education. In France, the government has decided to use it for our children: [French Ministry of education chooses bigbluebutton](https://bigbluebutton.org/2023/01/11/french-ministry-of-education-chooses-bigbluebutton/.

For developers who want to control the low WebRTC layers, Jitsi (Born in Alsace) is the easiest solution to deploy while being completely integrable, customizable and tunable (WebRTC).


Top WebRTC Media Servers

This category targets the Open-Source libraries that offer a complete Media Server which is a server that allows several users to have real-time interactions together using at least audio, vidéo, sharing and instant messages.

Top100: Media Servers
Webrtc Developers Quadrant: Servers 2023

Media ServersStarsGrowthUsage
SimpleRealtime Server22,3kLowC/C++
HLS/WebRTC/RTMP
Publish (push) and subscribe (play) server model
Janus7,3kHighC/C++
SFU/SIP Gateway
General purpose based on plugins
MediaMTX7,2kHighGo
SRT/WebRTC/RTSP/RTMP
Media broker
MediaSoup5,4kHighC++/Rust/Node.js
SFU
Client and server
LiveKit5,3kVery HighGo with Pion
SFU
SDK for a lot of platforms
Pion Ion (1)3,8kMediumGo/Flutter
SFU
Several SDKs
Ant-Media3,8kHighJava
HLS/RTMP/RTSP/WebRTC
SDK for all platforms
Kurento NEW
Kurento (2)
3kFlatC++
SFU/MCU
media transmission, processing, recording, and playback and computer vision
Licode3kFlatC++/Node.js
MCU
Streaming and recording
Jitsi-VideoBridge2,7kLowJava/Kotlin
SFU</br/>Highly scalable
Freeswitch2,5kLowC/C++
PBX/IVR/Conferences
Interconnect Phone and WebRTC
WebRTC-Streamer2,3kMediumC++
V4L2/RTSP/WebRTC
Streamer accepting multiple formats, to Web, Jitsi, Janus
OvenMediaEngine2,2kFlatC/C++
WebRTC, SRT, RTMP, RTSP, and MPEG2-TS over HTLS
Sub-Second Latency Streaming Server for large scale
Kamailio1,9kFlatC/C++
VoIP/SIP Gateway, WebRTC
Open Source SIP Server with WebRTC to interconnect with PBX
Go2RTC1,8kMediumGo
Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, HLS, MP4, MJPEG, HomeKit, FFmpeg
Asterisk1,6kLowC
PBX/PSTN/VoIP/WebRTC
Open Source PBX and telephony toolkit
MiroTalk SFU1,4kMediumC++/Node.js
SFU
Based on MediaSoup)
RTSPToWeb1,3kMediumGo
RTSP/WebRTC
converts your RTSP streams to formats consumable in a web browser
Medooze1,2kLowC++ (+ Node.js/Go integration)
MCU
WebRTC Media Server
Membrane1kLowElixir/C++
SFU/Processing/Transcoding
Advanced multimedia processing framework
Ion-SFU0,86kMediumGo
SFU
Low dependencies SFU. Used by Livekit
Broadcast-box0,32kMediumGo
Broadcast server using Whip
JellyFish0,05kLowElixir
RTSP/HLS/WebRTC
Based on Membrane
InLive Hub SFU0,02kLowGo
SFU
Based on Pion

This list mixes well-established WebRTC pur server implementation, servers originated from VoIP systems, and newcomers leveraged by the Pion Stack. Others are streaming servers that have added a WebRTC compatibility.

There is a real push for the Golang language. A second reason to learn this language :-)

Finally, depending on your needs, you’re spoilt for choice.

(1) Pion Ion seems inactive since mid 2022 (2) Kurento: This git seems inactive since late 2022


Top TURN servers

A TURN server is additional equipment (needed or not) to let users behind complex networks to connect to your solution.

Top100: STUN/TURN Servers
Webrtc Developers Quadrant: STUN/TURN 2023


I already write an article and the existing TURN servers in Coturn, the fragile colossus. Here is the list again

TURN serversStarsGrowthLanguage
Coturn9,5kVery HighC/C++
Pion Turn1,5kMediumGo
Turn-RS0,2kLowRust
Eturnal0,2kMediumC/Erlang
Violet0,1kMediumC

Without any doubt, if you need a robust TURN server, Coturn is the most used and deployed server. And despite a difficult period, Coturn is now again, a strong open-source with several contributors (thib-ack from ALE is one of them :-).

If you’re looking for an alternative, a solution could be Eturnal from ProcessOne. Pion Turn is not a ‘ready-to-configure’ Turn server but rather a toolkit for building your own Turn server integrated to your solution.


Top WebRTC Signaling servers

A signaling server is a server that exchanges all the messages needed to have a P2P or a conference call between two or more participants. It includes the messages needed to negotiate the call, to manage the call and finally to end the call. Often, WebRTC signaling messages are mixed with pur features messages within this server.

Difficult to define a quadrant here as major players use their own signaling methods and protocols.

Top100: Signaling Servers
Webrtc Developers Quadrant: Signaling Servers 2023


Signaling serversStarsGrowthUsage
ActivityPub-Mastodon43,4kVery HighRuby/Node.js
Social network server
Matrix-Synapse11,2kLowPython
Open protocol for decentralised, secure communications
Simple-Peer (1)6,9kMediumNode.js/JS
P2P and Mesh
Ejabberd/Jingle (3)5,6kMediumErlang/OTP
Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)
Matrix-Dendrite4,8kLowGo
Open protocol for decentralised, secure communications
Matrix second generation
PeerJS3,9kLowNode.js/JS
P2P signaling server
OpenFire/XMPP2,7kLowJava
Real time collaboration (RTC) server
SIP.js1,7kLowSIP, JS
WebRTC/SIP signaling library
OpenEasyRTC0,31kFlatNode.js
Rooms, Chat
Protoo-Client (2)0,2kLowNode.js
Minimalist and extensible Node.js signaling framework

There are not a lot of dedicated signaling servers even if it is outside the scope of the WebRTC standardization. This is because Media servers often come with their own signaling protocol or mechanism.

Only survive some actors that emerged at the beginning of WebRTC where developers had nothing to start with, such as SIP.js, Simple-Peer, PeerJS and OpenEasyRTC…

At the opposite, existing “standardized” protocols such as XMPP with Jingle or new ones such as Matrix are alternative to dissociating Media servers and signalisation.

And, to try to federate all, decentralized servers based on ActivityPub could be a new way to handle the signaling part.

(1) Simple-Peer seems inactive since Feb, 2022 (2) Protoo seems inactive since Jan, 2021 (3) At least with XEP-0166 Jingle


Top Other WebRTC libraries

Here are the other interesting libraries I found for some use cases I had.

No quadrant here. Just some cool libraries!

LibrariesStarsGrowthUsage
WebRTC Samples13,1kHighJS
Samples demonstrating WebRTC JS API
RecordRTC (1)6kMediumJS
P2P recording
adapter.js3,5kLowJS
WebRTC Shime library
WebTTY2,6kLowGo
Share a terminal session
GStreamer/webrtcsink/webrtcbin1,8kLowC
pipeline-based multimedia framework
aioquic1,3kMediumQuic/Python
Quic and HTTP/3 protocol library
WebRTC Camera1kHighHome Assistant
Home Assistant custom component for viewing almost any camera stream in real time using WebRTC
WebRTC-CLI0,2kLowGo
WebRTC command-line peer.
PeerMetrics0,05kLowJS
Collect stats for peer connections
WebRTC Issue Detector0,04kLowJS
Diagnostic tool and troubleshooter for WebRTC
WebRTCMetrics0,02kLowJS
Aggregate stats received from the WebRTC stack
Stats Gatherer0,02kLowJS
Collecting stats for webrtc connections

I was mostly focused on Web libraries due to my development, but WebRTC is used in many ways here.

(1) RecordRTC seems inactive since Apr, 2022

Ready for using WebRTC Open-Source?

As seen, if you need to add real-time interactions and video based into your product, the WebRTC open-source ecosystem and community are huge and should answer to your need.

But as with other recent technologies, it has taken some time for them to reach maturity, so there are a large number of promising old projects, much used but now abandoned for other, more popular ones. The problem is that some production solutions still use them today and need to find developers to rework/migrate the codebase to an open-source supported.

On my own, I will regularly update my list of these WebRTC open-source components for a future Top 100 in 2024.


Tags

#open-source

Share


Previous Article
Debugging WebRTC in the browsers
Olivier Anguenot

Olivier Anguenot

Your WebRTC copilot

Topics

api
dev
others

Related Posts

How to calculate MOS?
November 13, 2024
6 min
© 2024, All Rights Reserved.
Powered By

Quick Links

HomeAbout MeContact Me

Social Media