Repolode
meetecho

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. 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. 2

    Clone the Janus repository

    git clone https://github.com/meetecho/janus-gateway.git
  3. 3

    Generate the configure script, then configure, compile and install

    sh autogen.sh && ./configure --prefix=/opt/janus && make && make install
  4. 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