Awesome WebRTC
WebRTC (Web Real-Time Communication) is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC) via application programming interfaces (APIs).
Community list of awesome WebRTC projects, apps, tools, libraries and more.
Contents
Official
- Website - Official WebRTC website.
- Docs - WebRTC on MDN web docs.
- Source - WebRTC source repository.
- Demos - WebRTC samples and live demos.
- Article - WebRTC article from Wikipedia.
Tutorial
Discussion
Samples
Libraries
JavaScript
- adapter.js - JavaScript shim for abstracting WebRTC spec changes and inconsistencies.
- data-transport - A simple and responsible universal transport.
- DetectRTC - A tiny JavaScript library that can be used to detect WebRTC features e.g. system having speakers, microphone or webcam, screen capturing is supported, number of audio/video devices etc.
- discovery-swarm-webrtc - Discovery-swarm for WebRTC.
- instacam - Library to perform instant canvas video through the WebRTC API with a fresh touch of CSS filters.
- liowebrtc - An event-based WebRTC library that makes it easy to embed real-time peer to peer communication into UI components.
- LiveKit browser client SDK - Add real-time video, audio and data features to your JavaScript/TypeScript app.
- MediaStreamRecorder - Cross browser audio/video/screen recording.
- MultiStreamsMixer - JavaScript library that allows you pass multiple streams (e.g. screen+camera or multiple-cameras) and get single stream.
- NetplayJS - Make P2P multiplayer browser games, no server hosting or synchronization code required, powered by rollback netcode + WebRTC.
- P2P Media Loader - An open-source engine for P2P streaming of live and on demand video directly in a web browser HTML page.
- PeerLite - Lightweight WebRTC browser library that supports video, audio and data channels.
- peerjs - Simple peer-to-peer with WebRTC.
- peerfetch - Peer-to-peer HTTP over WebRTC.
- RTCMultiConnection - WebRTC JavaScript library for peer-to-peer applications (screen sharing, audio/video conferencing, file sharing, media streaming etc).
- RecordRTC - WebRTC JavaScript library for audio/video as well as screen activity recording.
- simple-peer - Simple WebRTC video, voice, and data channels.
- simple-peer-files - A library to send files over WebRTC.
- trystero - Build instant multiplayer webapps, no server required.
- video-stream-merger - Merge multiple video MediaStreams into one composite.
- webConnect.js - Auto WebRTC Mesh P2P Network without signaling server.
- WebPEER - WebPEER is a novel decentralized P2P network overlay in browser-side with a chance of working.
- WebRTCStats - Helps you collect stats for peer connections.
- webrtc-issue-detector - Diagnostic tool and troubleshooter for WebRTC applications with Mean Opinion Score (MOS) calculator.
- WebTorrent - Streaming torrent client for the web.
Node
- medooze-media-server - WebRTC Media Server for Node.js.
- node-datachannel - Easy to use WebRTC data channels and media transport. libdatachannel node bindings.
- node-webrtc - Node.js Native Addon that provides bindings to WebRTC.
- werift-webrtc - WebRTC Implementation for TypeScript (Node.js), includes ICE/DTLS/SCTP/RTP/SRTP/WEBM/MP4.
Go
- Pion WebRTC - A pure Go implementation of the WebRTC API.
- RTCTunnel - RTCTunnel builds network tunnels over WebRTC.
C/C++
- datachannel-wasm - C++ WebRTC Data Channels and WebSockets for WebAssembly in browsers.
- HumbleNet - A cross-platform networking library that works in the browser.
- libdatachannel - C/C++ WebRTC network library featuring Data Channels, Media Transport, and WebSockets.
- libpeer - WebRTC Library for IoT/Embedded Device using C.
- libwebrtc - A C++ wrapper for binary release, mainly used for flutter-webrtc desktop (windows, linux, embedded).
- MetaRTC - A cross-platform WebRTC SDK.
- rawrtc - WebRTC and ORTC with a little bit of RAWR.
- WebUDP - Minimal WebRTC datachannel server.
Stun & Turn
- Coturn - Free open source implementation of TURN and STUN Server.
- Eturnal - STUN / TURN standalone server.
- go-stun - A go implementation of the STUN client (RFC 3489 and RFC 5389).
- Pion TURN - Go toolkit for building TURN servers and clients.
- stun - Low-level Session Traversal Utilities for NAT (STUN) client and server.
- STUNTMAN - An open source STUN server.
- STUNNER - Stunner is a tool to test and exploit STUN, TURN and TURN over TCP servers.
- STUNner - A Kubernetes media gateway for WebRTC.
- turn-rs - A pure rust implemented TURN server.
- violet - Lightweight STUN/TURN server.
Signaling Server
Projects
Audio
Chat
- Brie.fi/ng - Secure direct video group chat.
- Chitchatter - Secure peer-to-peer chat that is serverless, decentralized, and ephemeral.
- Databag - A tiny selfhosted federated messenger for the decentralized web.
- Gise - Video chat application for your own web server.
- Heyy - A Realtime Chat Application using flutter, Asp.Net Core Web Api, SignalR , WebRTC etc.
- jsxc - Real-time xmpp chat application with video calls, file transfer and encrypted communication.
- otr.to - A secure peer-to-peer chat in your web browser.
- Pychat - Webchat via WebSockets/WebRTC that allows messaging/video call/screen sharing.
- quickmeet - A video chat/meeting webapp using WebRTC and WebSockets. Basically a Google Meet clone + a collaborative Whiteboard.
- talkhouse - WebRTC based peer to peer voice, video calling and messaging web app build with MERN stack.
- tl-rtc-file-tool - WebRTC P2P online web media streaming tool (for files, video, screen, live streaming, text) with management and statistical monitoring capabilities.
File Transfer
- filedrop - WebRTC E2E encrypted file transfer - React + Node.js.
- Filegogo - A file transfer tool that can be used in the browser WebRTC p2p.
- FilePizza - Peer-to-peer file transfers in your browser.
- GFile - Direct file transfer over WebRTC.
- PairDrop - Local file sharing in your browser.
- peermesh - Exchange files p2p and e2e encrypted over a fully meshed network in your browser using WebRTC.
- Pipe File Transfer - Web application for real-time file transfer using WebRTC.
- Peertransfer - Send a file p2p and e2e encrypted in your browser using WebRTC.
- ShareDrop - Easy P2P file transfer powered by WebRTC - inspired by Apple AirDrop.
- Snapdrop - A Progressive Web App for local file sharing.
- WebDrop - Easiest group P2P File & Message transfer in browser with WebRTC.
- WIFIDrop - Instant transfer unlimited size of files over WIFI powered by WebRTC.
- zero-share - A client-side secure P2P file sharing using WebRTC.
Game
- allkaraoke - Online Karaoke game with pitch detection in your browser.
- The Superviral Word Game - A Vue word game based on the Yakut national sport “Mas-wrestling”. Uses XState for state management, WebRTC for multiplayer and has custom WebGL engine.
Screen
- Deskreen - Turns any device with a web browser into a secondary screen for your computer.
- laplace - Laplace is an open-source project to enable screen sharing directly via browser.
- Odin - An open-source screen recorder built with web technology.
- pear-rec - Screenshot, screen recording, audio recording, and video recording software based on Electron.
- picklecast - Share your screen to a projector with only a web-browser.
- PeerWave - WebRTC share peer to peer to peer.
- screensy - Simple peer-to-peer screen sharing.
- Spreen - The Screen Sharing App.
- UltraScreen - Share your screen.
WebRTC Server
- Janus - Open source, general purpose, WebRTC server designed and developed by Meetecho.
- Jitsi Videobridge - WebRTC-compatible Selective Forwarding Unit (SFU), i.e. a multimedia router.
- Kurento - Kurento Media Server is responsible for media transmission, processing, loading and recording.
- Kraken - High performance WebRTC SFU implemented with pure Go.
- livekit - End-to-end stack for WebRTC. SFU media server and SDKs.
Streaming
- Ant Media Server - Live streaming engine software that provides adaptive, ultra low latency streaming by using WebRTC technology with ~0.5 seconds latency.
- Coplay - Synchronizing video play between two peers.
- Metastream - Watch streaming media with friends.
- MiroTalk WebRTC Live Broadcast - Allows to broadcast live video, audio and screen stream to all connected users (viewers).
- OvenPlayer - OvenPlayer is JavaScript-based LLHLS and WebRTC Player for OvenMediaEngine.
- Project Lightspeed - A self contained OBS -> FTL -> WebRTC live streaming server. Comprised of 3 parts once configured anyone can achieve sub-second OBS to the browser livestreaming.
- rtwatch - Watch videos with friends using WebRTC, let the server do the pausing and seeking.
- TStream - Live streaming from your terminal.
- VDO.Ninja - Powerful tool that lets you bring remote video feeds into OBS or other studio software via WebRTC.
Video Conference
- BigBlueButton - Complete open source web conferencing system.
- call-me - Your Go-To for Instant Video Calls!
- edumeet - Multiparty web-meetings using mediasoup and WebRTC.
- Galene - Videoconferencing server that is easy to deploy and requires moderate server resources.
- Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
- kollokvium - Online meetings made easy, secure and private for everyone.
- mediasoup - Cutting Edge WebRTC Video Conferencing.
- MiroTalk P2P - Simple, Secure, Fast Real-Time Video Conferences Up to 4k and 60fps, compatible with all browsers and platforms.
- MiroTalk SFU - Simple, Secure, Scalable Real-Time Video Conferences Up to 4k, compatible with all browsers and platforms.
- Nettu Meet - Open source video conferencing system for tutors.
- OpenVidu - Create custom videoconference services with ease.
- Plug-N-Meet - WebRTC based Scalable, High Performance, Open source web conferencing system using Livekit.
- persianmeet - Free Adobe Connect Alternatives.
- quik - Free video conferencing over WebRTC in Go.
- Roomler - Multi-party Video Conferencing & Team Collaboration Tool using WebRTC (Janus Gateway).
- Talk - Group video call for the web. No signups. No downloads.
- Trio Calls - A multi-participant video call platform for calling across the world for free with screen sharing.
- Wirow - A full featured self-hosted video web-conferencing platform.
- flok - Web-based P2P collaborative editor for live coding sounds and images.
- neko - A self hosted virtual browser that runs in docker and uses WebRTC.
- Parkerr - Parking detection and monitoring webapp that runs entirely in the browser.
- Project S.A.T.U.R.D.A.Y - A toolbox for working with WebRTC, Audio and AI.
- remotecontrol-desktop - Remote Control Desktop is a robust, reliable and fast remote desktop software for Windows / macOS / Linux.
- selkies-gstreamer - Open-Source Low-Latency Linux WebRTC HTML5 Remote Desktop / GStreamer WebRTC Components of Selkies.
- sshx - P2P SSH using WebRTC.
- tiny-web-metaverse - A web-based 3D virtual space lightweight framework with high flexibility, extensibility, and easy hosting, built on ECS architecture.
- uProxy - Browser extension that lets users share their internet connection.
- WebRTC Camera - Home Assistant custom component for real-time viewing of almost any camera stream using WebRTC and other technologies.
Miscellaneous
- androidwebrtcexample - WebRTC Android example.
- Android WebRTC - WebRTC pre-compiled library for android.
- aiortc - WebRTC and ORTC implementation for Python using asyncio.
- cordova-plugin-iosrtc - Cordova iOS plugin exposing the WebRTC W3C API.
- Flutter-WebRTC - WebRTC plugin for Flutter Mobile/Desktop/Web.
- libwebrtc - Google WebRTC implementation in a single static library.
- Matchbox - Painless peer-to-peer WebRTC networking for rust wasm (and native!).
- OBS-studio WebRTC - This is a fork of OBS-studio with generic support for webrtc.
- peer-stream - Lightweight WebRTC SDK for UnrealEngine PixelStreaming.
- Python WebRTC - Python extension that provides bindings to WebRTC M92.
- React-Native-WebRTC - A WebRTC module for React Native.
- rings - Rings is a structured peer-to-peer network implementation using WebRTC, Chord algorithm, and full WebAssembly (WASM) support.
- rpi-webrtc-streamer - Web Cam server on the most popular Raspberry PI hardware.
- WebRTC.rs - Pure Rust implementation of WebRTC stack, which rewrites Pion stack in Rust.
- WebRTC-iOS - A simple native WebRTC demo iOS app using swift.
- webrtc-java - WebRTC for desktop platforms running Java.
- WebRTC Android - A versatile WebRTC pre-compiled Android library that reflects the recent WebRTC updates to facilitate real-time video chat for Android and Compose.
- WebRTC for Unity - WebRTC package for Unity.
Archived
- hyperhost - P2P Node Servers in the Browser.
- Open WebRTC Toolkit - Client SDK for native Windows/Linux/Android/iOS applications is built upon the W3C WebRTC standard to accelerate the development of real time communication applications on these platform.
Contribute
Contributions are welcome!
See the Contribution Guidelines.