Favicon of LiveKit

LiveKit

LiveKit is an open source WebRTC platform providing a scalable SFU media server and client/server SDKs for real-time video, audio, and data.

Open Source Alternative to:
LiveKit website screenshot
LiveKit GitHub repository preview

LiveKit is an open source project providing scalable, multi-user WebRTC conferencing, positioned as an alternative to hosted real-time video APIs like Agora and Daily. Its server is written in Go on top of the Pion WebRTC implementation and runs as a Selective Forwarding Unit (SFU) that can be deployed as a single binary, in Docker, or on Kubernetes. LiveKit also maintains a broader ecosystem of companion projects for agents, recording, and stream ingestion built around the same core server, so teams do not have to bolt on third-party tooling for common tasks like exporting a recording of a call.

Key features

  • Distributed WebRTC SFU: The server is a scalable Selective Forwarding Unit that supports production JWT authentication and UDP/TCP/TURN connectivity for reliable networking across restrictive firewalls.
  • Full-featured client SDKs: Client libraries cover JavaScript/TypeScript, Swift (iOS/macOS), Kotlin (Android), Flutter, Unity WebGL, React Native, and Rust, several with declarative UI helpers like React and SwiftUI bindings.
  • Server SDKs for automation: Go, JavaScript, Ruby, and Java/Kotlin server SDKs generate access tokens, call server APIs, and receive webhooks; the Go SDK additionally includes client capabilities for building bot-like automations that join rooms as participants.
  • Advanced media features: Speaker detection, simulcast, selective subscription, end-to-end encryption, and SVC codecs (VP9, AV1) are supported natively without third-party plugins.
  • Multi-region, distributed deployment: LiveKit supports distributed and multi-region setups for reducing latency and increasing resilience at scale, documented for teams running production traffic.
  • Moderation APIs: Server code can mute, disconnect, or otherwise manage participants mid-session through documented moderation endpoints rather than relying on client-side enforcement alone.
  • Companion ecosystem: Separate projects handle AI agent backends (Agents), room recording and multi-streaming (Egress), and ingesting external streams like RTMP, WHIP, or HLS (Ingress).

How it works

Rooms are created and joined using JWT-authenticated client SDKs, while the Go-based SFU forwards media selectively between participants rather than relaying every stream to every peer, keeping bandwidth and server load down as room size grows. Webhooks notify server-side code of room and participant events, and the moderation APIs let a backend mute, disconnect, or otherwise manage participants during a live session without waiting on a client to cooperate.

Self-hosting and deployment

LiveKit deploys as a single binary, a Docker container, or a Kubernetes deployment, and documentation covers distributed, multi-region setups for teams running at scale. Public live demos, including LiveKit Meet, a spatial audio demo, an OBS Studio livestreaming example, and a ChatGPT-based voice assistant called Kitt, ship with linked source repositories so new users can see a working deployment before building their own. Because the server is a single Go binary, teams that want to avoid container orchestration entirely can still run LiveKit directly on a VM without Docker or Kubernetes.

Frequently asked questions

Share:

Stars
20K
Forks
2.2K
Last commit
19 hours ago
Repository age
6 years
License
Apache-2.0
Self-hosted
Yes
Activity score
82/100
View Repository
Ad
Favicon

 

  
 

Similar to LiveKit

Favicon

 

  
 
Favicon

 

  
 
Favicon