# meetecho/janus-gateway

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/meetecho-janus-gateway).**

9,117 stars · 2,617 forks · C · GPL-3.0

## Links

- GitHub: https://github.com/meetecho/janus-gateway
- Homepage: https://janus.conf.meetecho.com
- awesome-repositories: https://awesome-repositories.com/repository/meetecho-janus-gateway.md

## Description

Janus is a WebRTC media gateway that routes real-time audio, video, and data between web browsers and server-side application logic. It functions as a central media relay that manages session negotiation and encryption for multiple browser endpoints.

The project utilizes a modular plugin architecture that decouples the core server from specific media logic, allowing developers to implement custom modules for media processing, event handling, and transport protocols. This design enables the server to act as a protocol translation bridge, converting WebRTC streams into legacy formats such as SIP or RTP to interconnect disparate communication systems.

The server covers a broad range of real-time communication capabilities, including multi-party video conferencing, audio stream bridging, and live media streaming. It provides tools for media recording and playback, as well as SIP telephony integration. The system includes a transport-agnostic control plane for JSON message exchange via WebSockets, HTTP, and MQTT, supported by DTLS-SRTP stream encryption and token-based authentication.

Janus can be deployed as a background daemon or a lightweight gateway for cloud and embedded devices, and includes a built-in web server for hosting local demo applications.

## Tags

### Graphics & Multimedia

- [Real-Time Media Streaming](https://awesome-repositories.com/f/graphics-multimedia/real-time-media-streaming.md) — Broadcasts live audio and video content to web browsers with low latency.
- [Live Media Streaming](https://awesome-repositories.com/f/graphics-multimedia/live-media-streaming.md) — Delivers live audio and video streams to web browsers for real-time playback. ([source](https://janus.conf.meetecho.com/docs/files.html))
- [Media Capture and Playback](https://awesome-repositories.com/f/graphics-multimedia/audio-music/media-capture-and-playback.md) — Captures real-time media streams to disk and replays them back to users via WebRTC.
- [Media Processing Plugins](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/cross-platform-media-frameworks/media-application-development/media-processing-plugins.md) — Enables the creation of custom modules to handle and process media streams for delivery to browsers. ([source](https://janus.conf.meetecho.com/docs/group__pluginapi.html))
- [Multi-Protocol Streaming Delivery](https://awesome-repositories.com/f/graphics-multimedia/multi-protocol-streaming-delivery.md) — Distributes a single video source across multiple streaming transport protocols including WebRTC, WebSockets, and HTTP. ([source](https://janus.conf.meetecho.com/docs/CREDITS.html))
- [Stream Recording](https://awesome-repositories.com/f/graphics-multimedia/real-time-media-streaming/stream-recording.md) — Captures live network streams to local files for archival and on-demand playback. ([source](https://janus.conf.meetecho.com/docs/files.html))
- [Stream Publishing](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/streaming-broadcasting/media-streaming/live-television-streams/stream-publishing.md) — Provides capabilities for broadcasting live media from a source to multiple concurrent viewers. ([source](https://janus.conf.meetecho.com/docs/CREDITS.html))

### Web Development

- [Real-Time Media Servers](https://awesome-repositories.com/f/web-development/webrtc-configurations/real-time-media-servers.md) — Acts as a real-time media server managing the routing of audio, video, and data streams. ([source](https://cdn.jsdelivr.net/gh/meetecho/janus-gateway@master/README.md))
- [Plugin Media Routers](https://awesome-repositories.com/f/web-development/webrtc-configurations/real-time-media-servers/plugin-media-routers.md) — Relays RTP/RTCP and JSON messages between browsers and server-side plugins. ([source](https://janus.conf.meetecho.com/docs/group__core.html))
- [WebRTC Session Lifecycles](https://awesome-repositories.com/f/web-development/webrtc-configurations/real-time-media-servers/webrtc-facilitators/webrtc-session-lifecycles.md) — Manages the full WebRTC session lifecycle, including media signaling and negotiation between browsers. ([source](https://janus.conf.meetecho.com/docs/group__core.html))

### Content Management & Publishing

- [WebRTC Media Processing Plugins](https://awesome-repositories.com/f/content-management-publishing/media-server-plugins/webrtc-media-processing-plugins.md) — Enables the development of server-side plugins for bespoke WebRTC media processing and communication logic.

### Networking & Communication

- [RTP/RTCP Packet Processors](https://awesome-repositories.com/f/networking-communication/multimedia-streaming-protocols/rtp-rtsp-sdp-stream-receivers/rtp-rtcp-packet-processors.md) — Processes and forwards individual RTP and RTCP packets for real-time media streaming and control. ([source](https://janus.conf.meetecho.com/docs/annotated.html))
- [Media Protocol Bridges](https://awesome-repositories.com/f/networking-communication/peer-to-peer-data-exchange/data-channel-establishment/webrtc-data-channels/webrtc-to-tcp-bridges/media-protocol-bridges.md) — Bridges WebRTC streams into legacy formats like SIP or RTP to enable interoperability with telephony systems.
- [STUN/TURN Traversal Services](https://awesome-repositories.com/f/networking-communication/peer-to-peer-networking/stun-turn-traversal-services.md) — Configures STUN servers and gathering rules to facilitate peer-to-peer connectivity across NATs and firewalls. ([source](https://cdn.jsdelivr.net/gh/meetecho/janus-gateway@master/README.md))
- [Video Conferencing Systems](https://awesome-repositories.com/f/networking-communication/video-conferencing-systems.md) — Manages multi-party video conferencing rooms with synchronized audio, video, and data channels. ([source](https://janus.conf.meetecho.com/docs/files.html))
- [WebRTC Media Orchestration](https://awesome-repositories.com/f/networking-communication/webrtc-media-orchestration.md) — Routes real-time audio, video, and data between web browsers and server-side logic using WebRTC.
- [ICE-Based Peer Connection Managers](https://awesome-repositories.com/f/networking-communication/webrtc-media-orchestration/peer-connectivity/ice-based-peer-connection-managers.md) — Handles network discovery and maintenance using ICE to find optimal communication paths. ([source](https://janus.conf.meetecho.com/docs/group__protocols.html))
- [Multi-Protocol Transports](https://awesome-repositories.com/f/networking-communication/websocket-transports/multi-protocol-transports.md) — Provides a transport-agnostic control plane supporting HTTP, WebSockets, MQTT, and other network protocols. ([source](https://janus.conf.meetecho.com/docs/files.html))
- [Session Lifecycle Controls](https://awesome-repositories.com/f/networking-communication/active-session-management/session-lifecycle-controls.md) — Provides administrative controls to list, accept, and destroy active sessions for server load management. ([source](https://janus.conf.meetecho.com/docs/admin.html))
- [Websocket Connection Managers](https://awesome-repositories.com/f/networking-communication/connection-management/websocket-connection-managers.md) — Maintains persistent WebSocket connections for real-time control communication as an alternative to REST APIs. ([source](https://janus.conf.meetecho.com/docs/deploy.html))
- [Custom Transport Protocols](https://awesome-repositories.com/f/networking-communication/custom-transport-protocols.md) — Supports the implementation of custom transport protocols for flexible server-client communication. ([source](https://janus.conf.meetecho.com/docs/group__transportapi.html))
- [Protocol-Agnostic Transport Layers](https://awesome-repositories.com/f/networking-communication/protocol-agnostic-transport-layers.md) — Provides a protocol-agnostic transport layer for routing control messages across different network protocols.
- [Audio Stream Mixers](https://awesome-repositories.com/f/networking-communication/real-time-audio-capture-protocols/webrtc-audio-streaming/audio-stream-mixers.md) — Mixes and transcodes multiple participant audio streams into a single output for efficient conferencing. ([source](https://janus.conf.meetecho.com/docs/CREDITS.html))
- [Session State Management](https://awesome-repositories.com/f/networking-communication/session-state-management.md) — Tracks persistent client sessions and maps them to specific plugin handles for stateful communication.
- [SIP Bridges](https://awesome-repositories.com/f/networking-communication/sip-bridges.md) — Bridges WebRTC sessions with traditional SIP-based telephony infrastructure for voice and video calls. ([source](https://janus.conf.meetecho.com/docs/CREDITS.html))
- [SCTP](https://awesome-repositories.com/f/networking-communication/stream-multiplexers/sctp.md) — Transmits arbitrary application data over SCTP channels alongside media streams. ([source](https://janus.conf.meetecho.com/docs/group__protocols.html))
- [Telephony and Media Bridging](https://awesome-repositories.com/f/networking-communication/telephony-and-media-bridging.md) — Bridges modern WebRTC browser sessions with traditional SIP-based telephony infrastructure.
- [Peer Connectivity](https://awesome-repositories.com/f/networking-communication/webrtc-media-orchestration/peer-connectivity.md) — Relays audio, video, and data channels between endpoints without processing the media. ([source](https://cdn.jsdelivr.net/gh/meetecho/janus-gateway@master/README.md))

### Security & Cryptography

- [Shared Secret Keys](https://awesome-repositories.com/f/security-cryptography/access-restrictions/shared-secret-keys.md) — Restricts API access by requiring a pre-shared secret key for every request. ([source](https://cdn.jsdelivr.net/gh/meetecho/janus-gateway@master/README.md))
- [API Request Authentication](https://awesome-repositories.com/f/security-cryptography/identity-access-management/authentication-strategies/machine-and-protocol-identity/api-machine-authentication/api-request-authentication.md) — Verifies client identity using secure validation processes before granting access to the server API. ([source](https://janus.conf.meetecho.com/docs/pages.html))
- [Plugin Access Tokens](https://awesome-repositories.com/f/security-cryptography/plugin-access-tokens.md) — Manages the lifecycle and plugin-specific permissions of authentication tokens. ([source](https://janus.conf.meetecho.com/docs/admin.html))
- [Token-Based Authentication](https://awesome-repositories.com/f/security-cryptography/token-based-authentication.md) — Validates per-session cryptographic tokens on every API call to ensure authorized interaction. ([source](https://cdn.jsdelivr.net/gh/meetecho/janus-gateway@master/README.md))

### Software Engineering & Architecture

- [Media Processing Plugins](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/developer-authoring-interfaces/custom-module-implementations/module-functionality-extenders/plugin-extenders/media-processing-plugins.md) — Provides a modular plugin architecture for implementing bespoke media processing and server logic. ([source](https://janus.conf.meetecho.com/docs/CREDITS.html))
- [WebRTC Media Plugins](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/domain-specific/media-plugin-architectures/webrtc-media-plugins.md) — Loads and manages specialized WebRTC plugins such as audio bridges and video rooms. ([source](https://janus.conf.meetecho.com/docs/pages.html))
- [Media Gateways](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/domain-specific/media-plugin-architectures/webrtc-media-plugins/media-gateways.md) — Functions as a central WebRTC media gateway managing negotiation and encryption for multiple browser endpoints.
- [Plugin Attachments](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/domain-specific/media-plugin-architectures/webrtc-media-plugins/plugin-attachments.md) — Enables users to attach to specific plugins to exchange media and data streams. ([source](https://janus.conf.meetecho.com/docs/JS.html))
- [Modular Plugin Architectures](https://awesome-repositories.com/f/software-engineering-architecture/modular-plugin-architectures.md) — Employs a modular plugin architecture to decouple core server logic from specific media processing modules.
- [DTLS-SRTP Configurations](https://awesome-repositories.com/f/software-engineering-architecture/request-response-exchanges/udp-connectivity-probes/dtls-encrypted/dtls-srtp-configurations.md) — Configures DTLS-SRTP encryption to secure real-time media streams within WebRTC sessions. ([source](https://janus.conf.meetecho.com/docs/annotated.html))
- [Plugin Message Exchanges](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/hook-based-plugin-systems/logging-destination-plugins/plugin-message-loggers/plugin-message-exchanges.md) — Implements a JSON-based request and event exchange mechanism between clients and server-side plugins. ([source](https://janus.conf.meetecho.com/))
- [Custom Event Handlers](https://awesome-repositories.com/f/software-engineering-architecture/custom-event-handlers.md) — Allows development of custom plugins that process and respond to specific server-side events. ([source](https://janus.conf.meetecho.com/docs/group__eventhandlerapi.html))
- [Event-Driven Hook Systems](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-hook-systems.md) — Implements an event-driven hook system that forwards server events to external handlers via pub-sub.

### Development Tools & Productivity

- [Plugin Command Dispatchers](https://awesome-repositories.com/f/development-tools-productivity/cli-command-dispatchers/external-plugin-dispatchers/plugin-command-dispatchers.md) — Dispatches synchronous requests to server-side plugins to query or configure their internal state. ([source](https://janus.conf.meetecho.com/docs/admin.html))

### DevOps & Infrastructure

- [Lightweight Gateway Deployments](https://awesome-repositories.com/f/devops-infrastructure/remote-management-gateways/gateway-deployment/lightweight-gateway-deployments.md) — Offers a small-footprint deployment suitable for cloud gateways or embedded devices. ([source](https://janus.conf.meetecho.com/))

### System Administration & Monitoring

- [Real-Time Event Notifications](https://awesome-repositories.com/f/system-administration-monitoring/alert-event-forwarding/real-time-event-notifications.md) — Sends real-time event notifications to external endpoints such as RabbitMQ or MQTT. ([source](https://janus.conf.meetecho.com/docs/files.html))
- [Real-Time Server Activity Monitors](https://awesome-repositories.com/f/system-administration-monitoring/real-time-monitoring-systems/server-command-monitoring/real-time-server-activity-monitors.md) — Provides an admin interface to monitor real-time server activity, active sessions, and plugin health. ([source](https://janus.conf.meetecho.com/docs/pages.html))

### Part of an Awesome List

- [Streaming Servers](https://awesome-repositories.com/f/awesome-lists/media/streaming-servers.md) — General-purpose WebRTC server supporting SFU architecture.
