Skip to main content

Introduction

Build realtime applications with LiveKit's WebRTC transport layer, SDKs, and media handling capabilities.

Overview

LiveKit transport provides the foundation for building realtime applications using WebRTC. It includes client and server SDKs for multiple platforms, comprehensive media and data handling, stream export and import services, and hardware integration capabilities. Together, these components enable you to build production-ready realtime applications that work across web, mobile, hardware, and embedded devices.

LiveKit's transport layer handles the complexity of WebRTC connections, media encoding and decoding, network adaptation, and state synchronization. The SDKs provide a unified API across all platforms, ensuring consistent behavior whether you're building for web browsers, mobile apps, or embedded devices.

Key concepts

Understand these core concepts to build effective realtime applications with LiveKit.

SDK platforms

LiveKit provides a comprehensive ecosystem of SDKs for building realtime applications, including realtime SDKs for building user-facing applications, and server-side SDKs for backend operations and media processing. The SDKs are designed to work together, and support multiple platforms and languages.

All SDKs provide consistent APIs and features across platforms, ensuring that your applications work reliably regardless of the target platform. These core capabilities are designed to handle the complexities of realtime communication while providing a simple, unified API.

These capabilities include:

  • Unified room model: Same room concepts across all platforms.
  • Consistent track handling: Standardized audio and video track management.
  • Shared data APIs: Common data channel and messaging patterns.
  • Quality adaptation: Automatic quality adjustment based on network conditions.

SDK platform quickstarts

Get started with LiveKit SDKs for React, Swift, Android, Flutter, React Native, Expo, Unity, and more.

Realtime SDKs

Realtime SDKs let you build applications that connect to LiveKit rooms and participate in realtime communication. These SDKs handle WebRTC connections, media capture, and room management.

  • Media capture: Camera, microphone, and screen sharing.
  • Room management: Join, leave, and manage room participants.
  • Track handling: Subscribe to and publish audio and video tracks.
  • Data channels: Realtime messaging between participants.
  • Connection management: Automatic reconnection and quality adaptation.

LiveKit also supports specialized platforms and use cases beyond the main web and mobile platforms:

  • Rust SDK: For systems programming and embedded applications.
  • Unity WebGL: For web-based Unity applications.
  • ESP32: For IoT and embedded devices.

Server-side SDKs

Server-side SDKs provide the infrastructure and control needed to manage LiveKit rooms and participants. These capabilities enable backend applications to orchestrate realtime sessions and process media streams.

  • Room control: Create, manage, and monitor rooms.
  • Participant management: Control participant permissions and behavior.
  • Media processing: Subscribe to and process media streams.
  • Webhook handling: Respond to room and participant events.
  • Recording: Capture and store room sessions.
Tip

The Go SDK additionally offers client capabilities, allowing you to build automations that act like end users.

There are also community-maintained SDKs for other languages:

  • PHP: Community-maintained SDK for PHP applications.
  • .NET: Community-maintained SDK for .NET applications.

Media

LiveKit enables realtime exchange of audio and video streams between participants. You can publish and subscribe to tracks, process raw media, apply noise cancellation, and export or import streams.

Media overview

Learn how to handle realtime media tracks, screen sharing, and stream export/import in your applications.

Data

LiveKit provides realtime data exchange between participants using text streams, byte streams, remote procedure calls, and data packets. You can also synchronize state across all participants in a room.

Data overview

Learn how to send text, files, and custom data, and synchronize state between participants.

Encryption

Secure your realtime media and data with end-to-end encryption. LiveKit provides built-in E2EE support for both media tracks and data channels.

Encryption overview

Learn how to enable end-to-end encryption for media and data in your applications.

Self-hosting

Self-host LiveKit servers for full control over your WebRTC infrastructure, data, and configuration. Deploy LiveKit servers on local development environments, virtual machines, Kubernetes clusters, or distributed multi-region setups.

Self-hosting overview

Learn how to self-host LiveKit servers for full control over your infrastructure.

Hardware

Build realtime applications for embedded devices, ESP32 microcontrollers, and other hardware platforms. LiveKit provides specialized SDKs and tools for integrating with physical devices for IoT and edge computing use cases.

Hardware overview

Learn how to integrate LiveKit with hardware devices and embedded systems.

Getting started

Choose your platform to get started building your application: