A WebRTC-compatible SFU (selective forwarding unit) that routes video streams for large-scale video conferencing, used as a backend of Jitsi Meet.
meetecho/janus-gateway
A general-purpose, open source WebRTC media server written in C, with a plugin architecture for conferencing, streaming and SIP gateways.
- Stars
- 9,201
- Forks
- 2,636
- Open issues
- 30
- Last commit
- 12 hours ago
What is it?
Janus is a general-purpose WebRTC server developed by Meetecho. It acts as a media gateway that relays audio, video and data between WebRTC clients and other systems, handling the ICE, DTLS and SRTP work that WebRTC requires. Its core stays small, and most application logic lives in plugins that are loaded at runtime.
The server ships with plugins for videoconferencing rooms, media streaming, SIP telephony gateways, audio bridges, recording and other use cases, and it can also be extended with custom plugins written in C, Lua or Duktape. Clients control the server through a JSON-based API that can be reached over HTTP REST, WebSockets, MQTT, RabbitMQ or Nanomsg, depending on which optional libraries are compiled in.
Janus targets Linux and can also be built on macOS, with Windows supported only through WSL. Optional features such as Data Channels, WebSockets, MQTT and RabbitMQ can be enabled or disabled at configure time, and the project provides demo pages in its html folder for testing.
Key features
- 01Plugin architecture with video rooms, streaming, SIP gateway and audio bridge plugins
- 02Control API reachable over HTTP REST, WebSockets, MQTT, RabbitMQ or Nanomsg
- 03Supports WebRTC Data Channels via usrsctp (optional)
- 04Custom plugins can be written in C, Lua or Duktape
- 05Configurable ICE handling, including ICE Lite, TURN/STUN and NAT 1:1 settings
- 06Optional BoringSSL support and DTLS retransmission tuning
Use cases
- Building a multi-party videoconferencing backend on top of WebRTC
- Relaying live WebRTC streams to viewers or from RTSP sources
- Bridging browser WebRTC clients to SIP telephony systems
- Running a custom WebRTC media service with server-side plugins
Quick start
- 1
Install the required dependencies for your distribution (e.g. Ubuntu/Debian packages)
apt install libmicrohttpd-dev libjansson-dev libssl-dev libsofia-sip-ua-dev libglib2.0-dev libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev libconfig-dev pkg-config libtool automake - 2
Clone the Janus repository
git clone https://github.com/meetecho/janus-gateway.git - 3
Generate the configure script, then configure, compile and install
sh autogen.sh && ./configure --prefix=/opt/janus && make && make install - 4
Install the default configuration files
make configs
Things to know
- Linux-focused: Windows is not supported, only WSL.
- Requires compiling from source with many optional C dependencies.
In collections
Topics
FAQ
- What is janus-gateway?
- A general-purpose, open source WebRTC media server written in C, with a plugin architecture for conferencing, streaming and SIP gateways. Janus is a general-purpose WebRTC server developed by Meetecho. It acts as a media gateway that relays audio, video and data between WebRTC clients and other systems, handling the ICE, DTLS and SRTP work that WebRTC requires. Its core stays small, and most application logic lives in plugins that are loaded at runtime.
- Is janus-gateway free to use? What license does it have?
- janus-gateway is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
- Is janus-gateway still maintained?
- Actively maintained. The last commit to janus-gateway was on Nov 7, 2026.
- What can I use janus-gateway for?
- Building a multi-party videoconferencing backend on top of WebRTC Relaying live WebRTC streams to viewers or from RTSP sources Bridging browser WebRTC clients to SIP telephony systems Running a custom WebRTC media service with server-side plugins
- How do I install janus-gateway?
- Install the required dependencies for your distribution (e.g. Ubuntu/Debian packages): apt install libmicrohttpd-dev libjansson-dev libssl-dev libsofia-sip-ua-dev libglib2.0-dev libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev libconfig-dev pkg-config libtool automake Clone the Janus repository: git clone https://github.com/meetecho/janus-gateway.git Generate the configure script, then configure, compile and install: sh autogen.sh && ./configure --prefix=/opt/janus && make && make install Install the default configuration files: make configs
- Where can I get janus-gateway?
- The source code and installation instructions are on GitHub: https://github.com/meetecho/janus-gateway
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A software-defined telecom stack that turns commodity hardware into a SIP/VoIP switch, from Raspberry Pi to multi-core servers.
Kamailio is an open source SIP signaling server for large VoIP, telephony and real-time communication platforms.
A self-hosted videoconferencing server written in Go, using WebRTC with a browser-based client.
Self-hosted, open-source web conferencing server built on LiveKit, with an optional AI meeting agent for translation, transcription and summaries.
Open-source online classroom client for Web, Windows and macOS, built on Agora's real-time audio, video and messaging.