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.
JavaScript SDK
JavaScript/TypeScript SDK for web browsers. Supports all major browsers and provides React hooks for easy integration.
iOS/macOS/visionOS
Native Swift SDK for Apple platforms including iOS, macOS, and visionOS. Optimized for Apple's ecosystem.
Android
Native Kotlin SDK for Android applications. Provides comprehensive media handling and room management.
Flutter
Cross-platform SDK for Flutter applications. Write once, run on iOS, Android, web, and desktop.
React Native
React Native SDK for building cross-platform mobile applications with JavaScript/TypeScript.
Unity
Unity SDK for game development and virtual reality applications. Supports both native and WebGL builds.
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.
The Go SDK additionally offers client capabilities, allowing you to build automations that act like end users.
Node.js
JavaScript SDK for Node.js applications. Includes room management, participant control, and webhook handling.
Python
Python SDK for backend applications. Provides comprehensive media processing and room management capabilities.
Golang
Go SDK for high-performance server applications. Optimized for scalability and low latency. Includes client capabilities.
Ruby
Ruby SDK for Ruby on Rails and other Ruby applications. Full-featured server integration.
Java/Kotlin
Java and Kotlin SDK for JVM-based applications. Enterprise-ready with comprehensive features.
Rust
Rust SDK for systems programming and high-performance applications. Memory-safe and fast.
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: