gitmyhub

janus-gateway

C ★ 9.1k updated 4d ago

Janus WebRTC Server

An open-source WebRTC media server written in C that you self-host to build real-time audio and video apps, video conferencing, audio bridges, live streaming, using a flexible plugin architecture.

CWebRTCWebSocketsLuaRabbitMQMQTTsetup: hardcomplexity 4/5

Janus is an open-source server that handles real-time audio and video communication over the web, using a technology called WebRTC. WebRTC is what lets browsers have video calls without installing plugins, and Janus is the server-side piece that manages those connections, routes media between participants, and makes features like video conferencing, live streaming, and audio bridges possible for developers who want to build such systems themselves.

The server is written in C and runs on Linux, with macOS also supported. It exposes an API that your application talks to in order to create sessions, join rooms, and exchange media. You can reach that API over several different transports depending on what your application needs: a plain REST interface, WebSockets, RabbitMQ, MQTT, or a messaging system called Nanomsg. Each of these is optional and only compiled in if you install the corresponding library.

Janus is built around a plugin architecture. The core server handles signaling and media routing, and the specific use-cases live in plugins that you load at startup. Plugins cover common scenarios like multi-party video conferencing, audio mixing (AudioBridge), SIP gateways for connecting to phone systems, recording, screen sharing, and data channels. There is also a plugin for running custom logic written in Lua or Duktape if none of the built-in plugins fit your needs.

Installation requires compiling from source and installing a number of system libraries. The README documents the required and optional dependencies in detail, with package installation commands for Fedora and Ubuntu, and notes about specific library versions that are known to cause problems. The project has an active community forum and a documentation and demo site linked from the README.

Where it fits