• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
webrtcHacks

webrtcHacks

Guides and information for WebRTC developers

  • Home
  • About
    • Chad Hart
    • Philipp Hancke
  • Subscribe
  • Contact
  • Show Search
Hide Search

Other BigQuery, github, opensource Chad Hart · September 24, 2019

and the WebRTC Open Source Popularity Contest Winner is…

I am asked all the time what the most popular WebRTC projects are. I tried to address this question a few years ago in Data Nerding with WebRTC GitHub Data where I used the GitHub dataset on BigQuery to filter out WebRTC repos. Once you have this dataset it is easy to look for patterns over time. This time around I gave a lot more focus on popularity to suss out what the WebRTC community is both coding and using.

Photo: Courtesy of Hole / DGC Records (modified to remove the Hole logo album title and added WebRTC)

Methodology

Let’s briefly discuss how this is put together so you have some context when considering the results. My methodology this time was similar to what I did in 2015 from the, with some refinements. Some of my actual SQL is in this repo if you want to reference that.

Finding “WebRTC” Repos

BigQuery keeps a GH archive dataset that tracks all GitHub events going back years. To identify a “WebRTC repo” I look for keywords in the repo name and event payload. This time around I looked for the following:

Category Keyword(s)
keywordWebrtc webrtc
keywordGum getusermedia
keywordStunTurn stun server, turn server
keywordPc peerconnection
keyworkdPcExt Rtpsender, rtpreceiver, rtptransceiver, rtcdtlstransport, icetransport, rtctrackevent

I checked these keywords against a different GitHub dataset in Big Query – the GitHub Activity Dataset which contains all of GitHub’s public repo code contents.  I found 68,057 repos that contained one of the terms above. GitHub has close to 30 Million public repos, so this represents about 0.23% of that.

You can see the breakout by keyword category in the chart below:

pasted image 0 2

My methodology requires a timeline which is only available in the GH Archive dataset but this dataset does not contain a historical snapshot of the code contents of each repo (which would be massive). To be counted in my methodology, the keyword needs to show up once for that repo within whatever period I was tracking – monthly or for 2019 to-date in my reports below. It is a lot easier for repos that have a keyword in their name to show up, but the keywords show up plenty of times in commit names and comments. It seems unlikely that someone would be using a lot of WebRTC code and would not mention the keywords often.

It’s on my to do list to see if there is a better way of linking these 2 datasets to include better code content analysis.

Segmenting Event types

I wanted to identify repos that have many active contributors working with actual code and those who showed popularity metrics. To filter for these classes, I made 2 major sub-event categories:

  • Code events – was there someone actually working with the code? I look for a git PushEvent , PullRequest , or PullRequestReviewComment
  • Popularity events – does the repo have a lot of non-coding engagement? I look for git ForkEvent , WatchEvent , IssuesEvent , and IssueCommentEvent  event types

Aggregation

As you’ll see in the results, I do not rely heavily on the overall count of results – I care more about the distinct number of individual developers with activity in a given repo. This methodology also gives more weight to repos that have regular activity from many users.

Results

What are the most popular repos?

To start, I wanted to see the most popular repos by distinct individual gitHub userId in 2019 to date (through mid-September). See the comments section right after the datatable for some descriptions of some of these.

Distinct users per repo with with a code contribution

Rank repoName users
1 pion/webrtc 53
2 meetecho/janus-gateway 51
3 web-platform-tests/wpt 30
4 w3c/webrtc-pc 21
5 open-webrtc-toolkit/owt-server 19
6 webrtc/samples 18
7 react-native-webrtc/react-native-webrtc 16
7 electron/electron 16
7 open-webrtc-toolkit/owt-client-javascript 16
8 w3c/mediacapture-main 15
8 feross/simple-peer 15
9 webrtcHacks/adapter 14
9 coturn/coturn 14
10 react-native-webrtc/react-native-callkeep 13
10 centricular/gstwebrtc-demos 13
10 ethereum/eth2.0-specs 13
10 webrtc-uwp/webrtc-windows 13
10 RocketChat/Rocket.Chat 13
11 w3c/webrtc-stats 12
12 nextcloud/spreed 11
12 cloudwebrtc/flutter-webrtc 11
12 blackuy/react-native-twilio-video-webrtc 11

There were 11 repos that had 10 contributors right after this.

Distinct users per repo with a popularity event

Rank repoName users
1 pion/webrtc 1747
2 webrtc/samples 1746
3 muaz-khan/WebRTC-Experiment 1370
4 webrtc/apprtc 637
5 cloudwebrtc/flutter-webrtc 501
6 react-native-webrtc/react-native-webrtc 371
7 webrtcHacks/adapter 339
8 node-webrtc/node-webrtc 327
9 meetecho/janus-gateway 320
10 ddssingsong/webrtc_android 310
11 mpromonet/webrtc-streamer 286
12 oney/react-native-webrtc 282
13 wiseman/py-webrtcvad 281
14 open-webrtc-toolkit/owt-server 281
15 coturn/coturn 274
16 starrtc/starrtc-android-demo 269
17 muaz-khan/RecordRTC 234
18 diafygi/webrtc-ips 233
19 muaz-khan/RTCMultiConnection 220
20 andyet/SimpleWebRTC 210
21 webrtc/adapter 209
22 cloudwebrtc/flutter-webrtc-demo 203
23 centricular/gstwebrtc-demos 191
24 xiangyuecn/Recorder 191
25 stasel/WebRTC-iOS 178

Most popular repo comments

There are a lot of repos here, but several of them show up repeatedly. I include the top 10 across these two measures with some brief comments below. To get the measure, I took the inverse rank (i.e. the top repo gets the highest number) for each list, added them together, and sorted descending.

Repo  Comments
pion/webrtc Go-based full stack WebRTC project – the project’s popularity is pretty remarkable considering the repo only started in May 2018.
webrtc/samples The official WebRTC samples directory which is intended to be the first place WebRTC developers go as a reference
meetecho/janus-gateway It looks like Janus wins the WebRTC SFU popularity race, though it should be noted Janus does more than act as a SFU which may have helped it rank highly
react-native-webrtc/react-native-webrtc React is one of the most popular frameworks thanks to its native extensions that let web developers build hybrid apps.
open-webrtc-toolkit/owt-server Intel has had an Open Source WebRTC toolkit include a media server that can leverage hardware acceleration for media processing and computer vision
webrtcHacks/adapter The de facto browser polyfill maintained by webrtcHacks’ own Fippo is still a staple for WebRTC browser interop
cloudwebrtc/flutter-webrtc Flutter is a another hybrid development framework from Google – this repo adds WebRTC to iOS and Android Flutter apps
coturn/coturn TURN is a critical component to any real WebRTC deployment so it should be no surprise to see this long-standing project in this list
centricular/gstwebrtc-demos gStreamer is a very widely used media streaming project – this repo demonstrates gStreamer WebRTC implementation
feross/simple-peer Simple Peer was among the web-developer oriented frameworks to make using WebRTC easy and is the leader here in my methodology

pions  switched its name to pion  in April 2019. To prevent double counting I went back and counted distinct users in both pions/webrtc  and pion/webrtc .

What are the most popular orgs?

The above analysis looks at individual repos, but some GitHub organizations house many dozens of repos, often times part of the same project just because of the way the org decided to structure their code. Maybe a relatively low average usage per repo is masking a very commonly used project at the organization level, so let’s look at that.

Distinct users per org

Rank Row Labels all
1 webrtc 2517
2 pion 1811
3 react-native-webrtc 540
4 open-webrtc-toolkit 427
5 starrtc 420
6 webrtcHacks 416
7 node-webrtc 354
8 meetecho 335
9 coturn 321
10 andyet 238
11 microsoft 234
12 jitsi 212
13 w3c 199
14 centricular 191
15 webrtc-uwp 181
16 AdguardTeam 171
17 googlecodelabs 163
18 RTC-Developer 149
19 blackuy 147
20 ant-media 142

Distinct users per org with with a code contribution

Let’s filter that to just look at the people who are actively involved in coding.

Rank Org users
1 pion 58
2 meetecho 51
3 w3c 46
4 react-native-webrtc 35
5 webrtc 33
6 web-platform-tests 30
6 mozilla 30
8 open-webrtc-toolkit 28
9 microsoft 25
10 jitsi 21
10 ethereum 21
11 libp2p 20
12 twilio 19
13 webrtcHacks 18
13 wireapp 18
13 Azure 18

Org Comments

Like before, let’s look at the top 10 across these two lists that have not been mentioned above.

Org Comments
w3c This repo has all the official reference implementations and examples for  various W3C WebRTC Working Group specs – a good place to go to see what the spec says, just keep in mind individual WebRTC implementations will vary
microsoft Microsoft is a big company that has moved to opening sourcing many of its projects, including WebRTC. This org contains 16 repos with WebRTC terms including several for MixReality, Unity, and their WebRTC for Universal Windows Platform samples
starrtc This project out of China provides WebRTC server with Android, iOS, Windows, and Web clients and many examples and demos. This seems to be oriented at a Chinese audience but they do have English docs too
jitsi Surprisingly we did not see this Selective Forwarding Unit (SFU) – based project and frequent webrtcHacks contributor earlier.  This project contains 20 active repos in 2019 with the Jitsi Video Bridge and Jitsi Meet being the most popular.
node-webrtc This project provides the Chromium WebRTC stack in node.js for server-side and native Linux, macOS, and Windows applications. It also includes Electron support.
mozilla No surprises that Mozilla is in this list with 42 repos with some activity so far in 2019
web-platform-tests Another W3C project, this org provides a  cross-browser test suite. Go to wpt.fyi to see how Chrome, Edge, Firefox, and Safari do against various WebRTC test specs (and all other Web API’s)
andyet Andyet is the team behind SimpleWebRTC. The open source repo is actually deprecated but has many watchers and forks.
ethereum Ethereum is a programmable blockchain platform that supports WebRTC as one if its transports. The “new decentralized Internet” talk reminds of me of Pied Piper. All jokes aside, it is great to see a popular dataChannel application like this.
libp2p Libp2p.io is a peer-to-peer networking framework with implementations for JavaScript, node.js, and Go
webrtc-uwp This is Microsoft’s org for its WebRTC for Universal Windows Platform

How Popular is WebRTC?

We looked at what’s popular within WebRTC, but how is WebRTC doing overall? To figure this out I counted active users per month across all of GitHub to compare this against the WebRTC user set. WebRTC is a small subset of all GitHub repos so the scales are different but you can see the growth trend. To smooth out seasonal averages (i.e. dips in the summer) and random changes I made a 6 month moving average.

You can see below that both graphs are up and to the right. There appears to be a slight slowing in WebRTC’s growth vs. GitHub overall in 2018 but WebRTC is clearly growing faster in 2019 than GitHub overall. New WebRTC projects like pion are certainly helping here.

pasted image 0 1

I also did the same analysis looking at just users with code events in a given month. This also shows a relative decline in WebRTC activity from 2017 to 2018 with a resurgence in 2019 to-date.

pasted image 0

What did we learn today?

The data shows WebRTC is alive and well. There are some leader changes since my last analysis in 2015, but it is encouraging to see many new projects rapidly gain prominence. WebRTC is far from becoming stale. Looking at the overall GitHub stats, WebRTC seems to be engrained in the technosphere.. Perhaps it will even find new growth as efforts like WebRTC-QUIC mature.

Remember there are a lot of projects. I was only able to highlight a few, my cut-off points are somewhat arbitrary, and this is only one snapshot in time,  so definitely do not treat what you see in this post as all there is. I hope to see your name as one of WebRTC’s top open source contributors next time 🙂

{“author”: “chad hart“}

Other BigQuery, github, opensource

Related Posts

  • Post-Peak WebRTC Developer Trends: An Open Source AnalysisPost-Peak WebRTC Developer Trends: An Open Source Analysis
  • Data Nerding with WebRTC GitHub DataData Nerding with WebRTC GitHub Data
  • Making WebRTC source building not suck (Alex Gouaillard)Making WebRTC source building not suck (Alex Gouaillard)
  • The Open Source rfc5766-turn-server Project – Interview with Oleg MoskalenkoThe Open Source rfc5766-turn-server Project – Interview with Oleg Moskalenko

RSS Feed

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

  • Sponsored. Become a webtcHacks sponsor

Email Subscription

Subscribe to our mailing list

* indicates required

Twittering

Tweets by @webRTChacks
webrtcHacksguides and information for WebRTC developers

Footer

SITE

  • Post List
  • About
  • Contact

Categories

  • Guide
  • Other
  • Reverse-Engineering
  • Standards
  • Technology

Tags

apple Blackbox Exploration Brief camera Chrome code computer vision DataChannel debug e2ee Edge extension gateway getUserMedia ICE ims insertable streams ios ip leakage janus jitsi MCU Microsoft NAT opensource Opus ORTC Promo Q&A raspberry pi Safari SDES SDP sfu signaling simulcast standards TURN video vp8 w3c Walkthrough Web Audio webrtc-internals wireshark

Follow

  • Twitter
  • YouTube
  • GitHub
  • RSS

webrtcHacks · copyright © 2023