livekit/rust-sdks
LiveKit realtime and server SDKs for Rust
📹🦀 LiveKit Rust SDK – Rust 앱을 위한 실시간 비디오, 오디오 및 데이터
개요 – WebRTC를 사용하여 LiveKit 서버(클라우드 또는 자체 호스팅)와 통신하는 네이티브 Rust 클라이언트 라이브러리입니다. 데스크톱 도구부터 모바일 앱, 임베디드 장치까지 모든 Rust 프로그램에 저지연 비디오 통화, 오디오 스트림 및 임의의 데이터 채널을 추가할 수 있습니다.
주요 기능
- LiveKit 룸에 연결하고 오디오, 비디오 및 데이터 트랙을 게시/구독합니다.
- 최신 코덱 및 기능 지원: 동시 방송(simulcast), SVC (AV1/VP9), 하드웨어 가속 H.264/H.265 (macOS/iOS의 VideoToolbox, Nvidia GPU의 NVENC, Linux의 AMD, Jetson 지원).
- Dynacast(구독자가 있을 때만 비디오 전송) 및 선택적 적응형 스트리밍.
- 크로스 플랫폼: Windows, macOS, Linux, iOS, Android.
- 비동기 작업을 위해 Tokio를 기반으로 구축.
저장소 내 크레이트
| 크레이트 | 목적 |
|---|---|
livekit-api |
서버 측 REST API 및 JWT 토큰 생성. |
livekit |
메인 실시간 클라이언트 SDK (WebRTC 처리, 트랙 관리, 이벤트). |
livekit-ffi |
언어 바인딩 생성용 내부 헬퍼 (다른 SDK용 등). |
livekit-protocol |
클라이언트와 서버에서 사용하는 자동 생성된 프로토콜 정의. |
일반적인 워크플로우
- 액세스 토큰 (JWT) 생성:
livekit_api::access_token을 사용하여 LiveKit API 키/시크릿으로 생성합니다. - 룸 생성 또는 참여: Room Service API를 통하거나
Room::connect를 직접 사용합니다. - 트랙 게시: 마이크, 카메라 또는 파일 소스를 룸에 연결합니다.
- 원격 트랙 구독:
NativeAudioStream/NativeVideoStream을 통해 오디오/비디오 프레임을 수신하고 비동기적으로 처리합니다. - 데이터 채널 사용: 채팅, 신호 전달 또는 사용자 지정 바이너리 페이로드에 사용합니다.
샘플 코드
// 1️⃣ JWT 토큰 생성
let token = livekit_api::access_token::AccessToken::with_api_key(&api_key, &api_secret)
.with_identity("rust-bot")
.with_grants(livekit_api::access_token::VideoGrants { room_join: true, room: "my-room".into(), ..Default::default() })
.to_jwt()?;
// 2️⃣ 룸 연결
let (room, mut events) = livekit::Room::connect(&url, &token).await?;
while let Some(ev) = events.recv().await {
match ev {
livekit::RoomEvent::TrackSubscribed { track, .. } => {
// 여기서 오디오/비디오 프레임 처리
}
_ => {}
}
}
AI / 에이전트 관련 중요성 – README는 음성 인식, 대규모 언어 모델, 음성 합성, 턴 감지 등을 번들로 제공하는 LiveKit Agents 생태계(Python/Node)를 강조합니다. Rust SDK는 Rust로 작성된 음성 AI 에이전트의 전송 계층 역할을 하여, STT 모델에 오디오를 입력하거나 TTS를 통해 생성된 음성을 실시간으로 수신할 수 있습니다.
시작하기
Cargo.toml에livekit = "<latest>"(또는 필요한 특정 크레이트)를 추가합니다..cargo/config.toml에 필요한rustflags가 설정되어 있는지 확인합니다(네이티브 WebRTC 라이브러리 링크에 필요).- Building 섹션의 설명에 따라 플랫폼별 빌드 도구(Ubuntu의 clang-21, macOS의 -ObjC 링커 플래그 등)를 설치합니다.
- 예제 프로젝트(
examples/basic_room,examples/play_from_disk등) 중 하나를 실행하여 실제 비디오 통화를 확인합니다.
생태계 링크
- LiveKit server (오픈 소스 WebRTC 신호 및 미디어 서버).
- 기타 클라이언트 SDK (JS, Swift, Android, Flutter, Unity, C++, Python, Node).
- 음성 비서 구축용 Agent SDK.
- 문서, CLI 및 커뮤니티 리소스.
결론 – 비디오 회의, 라이브 스트리밍, AI 음성 에이전트 구동 등 Rust 애플리케이션에서 실시간 저지연 미디어가 필요한 경우, LiveKit Rust SDK는 WebRTC와 Tokio를 기반으로 한 프로덕션급 크로스 플랫폼 기반을 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트