Skip to main content

livekit_api/
lib.rs

1// Copyright 2025 LiveKit, Inc.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#![doc = include_str!("../README.md")]
16
17#[cfg(feature = "access-token")]
18pub mod access_token;
19
20#[cfg(feature = "access-token")]
21mod jwt_provider;
22
23#[cfg(any(feature = "services-tokio", feature = "services-async"))]
24pub mod services;
25
26#[cfg(any(
27    feature = "signal-client-tokio",
28    feature = "signal-client-async",
29    feature = "signal-client-dispatcher"
30))]
31pub mod signal_client;
32
33#[cfg(any(
34    feature = "signal-client-tokio",
35    feature = "signal-client-async",
36    feature = "signal-client-dispatcher",
37    feature = "services-tokio",
38    feature = "services-async"
39))]
40mod http_client;
41
42// Region-discovery helpers shared by the signaling region provider
43// (signal_client::region_url_provider) and the API failover region cache
44// (services::failover).
45#[cfg(any(
46    feature = "signal-client-tokio",
47    feature = "signal-client-async",
48    feature = "signal-client-dispatcher",
49    feature = "services-tokio",
50    feature = "services-async"
51))]
52mod region;
53
54#[cfg(feature = "webhooks")]
55pub mod webhooks;
56
57#[allow(dead_code)]
58pub(crate) fn get_env_keys() -> Result<(String, String), std::env::VarError> {
59    let api_key = std::env::var("LIVEKIT_API_KEY")?;
60    let api_secret = std::env::var("LIVEKIT_API_SECRET")?;
61    Ok((api_key, api_secret))
62}