feat: move signal_client to livekit-api (#98)
This commit is contained in:
Generated
+35
-3
@@ -625,6 +625,19 @@ dependencies = [
|
||||
"want",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hyper-rustls"
|
||||
version = "0.24.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d105b1a14698f4e6433d348b7"
|
||||
dependencies = [
|
||||
"http",
|
||||
"hyper",
|
||||
"rustls",
|
||||
"tokio",
|
||||
"tokio-rustls",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hyper-tls"
|
||||
version = "0.5.0"
|
||||
@@ -783,6 +796,7 @@ version = "0.1.1"
|
||||
dependencies = [
|
||||
"futures-util",
|
||||
"lazy_static",
|
||||
"livekit-api",
|
||||
"livekit-protocol",
|
||||
"livekit-webrtc",
|
||||
"log",
|
||||
@@ -792,22 +806,25 @@ dependencies = [
|
||||
"serde_json",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"tokio-tungstenite",
|
||||
"url",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "livekit-api"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"futures-util",
|
||||
"jsonwebtoken",
|
||||
"livekit-protocol",
|
||||
"log",
|
||||
"parking_lot",
|
||||
"prost",
|
||||
"reqwest",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"sha2",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"tokio-tungstenite",
|
||||
"url",
|
||||
]
|
||||
|
||||
@@ -1253,6 +1270,7 @@ dependencies = [
|
||||
"http",
|
||||
"http-body",
|
||||
"hyper",
|
||||
"hyper-rustls",
|
||||
"hyper-tls",
|
||||
"ipnet",
|
||||
"js-sys",
|
||||
@@ -1262,16 +1280,21 @@ dependencies = [
|
||||
"once_cell",
|
||||
"percent-encoding",
|
||||
"pin-project-lite",
|
||||
"rustls",
|
||||
"rustls-native-certs",
|
||||
"rustls-pemfile",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"serde_urlencoded",
|
||||
"tokio",
|
||||
"tokio-native-tls",
|
||||
"tokio-rustls",
|
||||
"tower-service",
|
||||
"url",
|
||||
"wasm-bindgen",
|
||||
"wasm-bindgen-futures",
|
||||
"web-sys",
|
||||
"webpki-roots 0.22.6",
|
||||
"winreg",
|
||||
]
|
||||
|
||||
@@ -1690,7 +1713,7 @@ dependencies = [
|
||||
"tokio-native-tls",
|
||||
"tokio-rustls",
|
||||
"tungstenite",
|
||||
"webpki-roots",
|
||||
"webpki-roots 0.23.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1931,6 +1954,15 @@ dependencies = [
|
||||
"untrusted",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "webpki-roots"
|
||||
version = "0.22.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"
|
||||
dependencies = [
|
||||
"webpki",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "webpki-roots"
|
||||
version = "0.23.1"
|
||||
|
||||
Generated
+17
@@ -1479,6 +1479,7 @@ version = "0.1.1"
|
||||
dependencies = [
|
||||
"futures-util",
|
||||
"lazy_static",
|
||||
"livekit-api",
|
||||
"livekit-protocol",
|
||||
"livekit-webrtc",
|
||||
"log",
|
||||
@@ -1488,6 +1489,22 @@ dependencies = [
|
||||
"serde_json",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "livekit-api"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"futures-util",
|
||||
"livekit-protocol",
|
||||
"log",
|
||||
"parking_lot",
|
||||
"prost",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"sha2",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"tokio-tungstenite",
|
||||
"url",
|
||||
]
|
||||
|
||||
+31
-6
@@ -3,13 +3,38 @@ name = "livekit-api"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[features]
|
||||
# By default ws TLS is not enabled
|
||||
default = ["services", "access-token"]
|
||||
|
||||
signal-client = ["dep:tokio-tungstenite", "dep:tokio", "dep:futures-util" ]
|
||||
services = ["dep:reqwest"]
|
||||
access-token = ["dep:jsonwebtoken"]
|
||||
|
||||
# Note that the following features only change the behavior of tokio-tungstenite.
|
||||
# It doesn't change the behavior of libwebrtc/webrtc-sys
|
||||
native-tls = ["tokio-tungstenite?/native-tls", "reqwest?/native-tls"]
|
||||
native-tls-vendored = ["tokio-tungstenite?/native-tls-vendored", "reqwest?/native-tls-vendored"]
|
||||
rustls-tls-native-roots = ["tokio-tungstenite?/rustls-tls-native-roots", "reqwest?/rustls-tls-native-roots"]
|
||||
rustls-tls-webpki-roots = ["tokio-tungstenite?/rustls-tls-webpki-roots", "reqwest?/rustls-tls-webpki-roots"]
|
||||
__rustls-tls = ["tokio-tungstenite?/__rustls-tls", "reqwest?/__rustls"]
|
||||
|
||||
[dependencies]
|
||||
jsonwebtoken = {version = "8", default-features = false }
|
||||
thiserror = "1.0"
|
||||
serde = {version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
livekit-protocol = { path = "../livekit-protocol", version = "0.1.0" }
|
||||
thiserror = "1.0"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
sha2 = "0.10.6"
|
||||
reqwest = { version = "0.11", features=["json"] }
|
||||
url = "2.3.1"
|
||||
prost = "0.11.9"
|
||||
log = "0.4"
|
||||
parking_lot = { version = "0.12.1" }
|
||||
prost = "0.11"
|
||||
|
||||
# access_token & services
|
||||
jsonwebtoken = { version = "8", default-features = false, optional = true }
|
||||
reqwest = { version = "0.11", default-features = false, features = ["json"], optional = true }
|
||||
|
||||
# signal_client
|
||||
tokio-tungstenite = { version = "0.19", optional = true }
|
||||
tokio = { version = "1", features = ["full"], optional = true }
|
||||
futures-util = { version = "0.3", default-features = false, features = ["sink"], optional = true }
|
||||
@@ -1,7 +1,14 @@
|
||||
#[cfg(feature = "access-token")]
|
||||
pub mod access_token;
|
||||
|
||||
#[cfg(feature = "services")]
|
||||
pub mod services;
|
||||
|
||||
#[cfg(feature = "signal-client")]
|
||||
pub mod signal_client;
|
||||
pub mod webhook_receiver;
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub(crate) fn get_env_keys() -> Result<(String, String), std::env::VarError> {
|
||||
let api_key = std::env::var("LIVEKIT_API_KEY")?;
|
||||
let api_secret = std::env::var("LIVEKIT_API_SECRET")?;
|
||||
|
||||
@@ -10,9 +10,9 @@ use tokio_tungstenite::tungstenite::Error as WsError;
|
||||
|
||||
mod signal_stream;
|
||||
|
||||
pub(crate) type SignalEmitter = mpsc::Sender<SignalEvent>;
|
||||
pub(crate) type SignalEvents = mpsc::Receiver<SignalEvent>;
|
||||
pub(crate) type SignalResult<T> = Result<T, SignalError>;
|
||||
pub type SignalEmitter = mpsc::Sender<SignalEvent>;
|
||||
pub type SignalEvents = mpsc::Receiver<SignalEvent>;
|
||||
pub type SignalResult<T> = Result<T, SignalError>;
|
||||
|
||||
pub const JOIN_RESPONSE_TIMEOUT: Duration = Duration::from_secs(5);
|
||||
pub const PROTOCOL_VERSION: u32 = 8;
|
||||
-2
@@ -11,8 +11,6 @@ use tokio_tungstenite::tungstenite::protocol::CloseFrame;
|
||||
use tokio_tungstenite::tungstenite::Message;
|
||||
use tokio_tungstenite::{connect_async, MaybeTlsStream, WebSocketStream};
|
||||
|
||||
use super::SignalEvents;
|
||||
|
||||
type WebSocket = WebSocketStream<MaybeTlsStream<TcpStream>>;
|
||||
|
||||
#[derive(Debug)]
|
||||
+6
-7
@@ -12,22 +12,21 @@ default = []
|
||||
|
||||
# Note that the following features only change the behavior of tokio-tungstenite.
|
||||
# It doesn't change the behavior of libwebrtc/webrtc-sys
|
||||
native-tls = ["tokio-tungstenite/native-tls"]
|
||||
native-tls-vendored = ["tokio-tungstenite/native-tls-vendored"]
|
||||
rustls-tls-native-roots = ["tokio-tungstenite/rustls-tls-native-roots"]
|
||||
rustls-tls-webpki-roots = ["tokio-tungstenite/rustls-tls-webpki-roots"]
|
||||
__rustls-tls = ["tokio-tungstenite/__rustls-tls"]
|
||||
native-tls = ["livekit-api/native-tls"]
|
||||
native-tls-vendored = ["livekit-api/native-tls-vendored"]
|
||||
rustls-tls-native-roots = ["livekit-api/rustls-tls-native-roots"]
|
||||
rustls-tls-webpki-roots = ["livekit-api/rustls-tls-webpki-roots"]
|
||||
__rustls-tls = ["livekit-api/__rustls-tls"]
|
||||
|
||||
[dependencies]
|
||||
livekit-api = { path = "../livekit-api", version = "0.1.0", default-features = false, features = ["signal-client"] }
|
||||
livekit-webrtc = { path = "../livekit-webrtc", version = "0.1.1" }
|
||||
livekit-protocol = { path = "../livekit-protocol", version = "0.1.0" }
|
||||
prost = "0.11"
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
tokio-tungstenite = { version = "0.19" }
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
parking_lot = { version = "0.12.1" }
|
||||
url = "2.3"
|
||||
futures-util = { version = "0.3", default-features = false, features = ["sink"] }
|
||||
thiserror = "1.0"
|
||||
lazy_static = "1.4"
|
||||
|
||||
@@ -3,7 +3,6 @@ extern crate core;
|
||||
pub mod proto;
|
||||
mod room;
|
||||
mod rtc_engine;
|
||||
mod signal_client;
|
||||
|
||||
pub mod webrtc {
|
||||
pub use livekit_webrtc::*;
|
||||
|
||||
@@ -3,7 +3,7 @@ use crate::participant::ConnectionQuality;
|
||||
use crate::prelude::*;
|
||||
use crate::rtc_engine::EngineError;
|
||||
use crate::rtc_engine::{EngineEvent, EngineEvents, EngineResult, RtcEngine};
|
||||
use crate::signal_client::SignalOptions;
|
||||
use livekit_api::signal_client::SignalOptions;
|
||||
use livekit_protocol as proto;
|
||||
use livekit_protocol::observer::Dispatcher;
|
||||
use parking_lot::{Mutex, RwLock, RwLockReadGuard};
|
||||
|
||||
@@ -2,8 +2,8 @@ use crate::options::TrackPublishOptions;
|
||||
use crate::prelude::LocalTrack;
|
||||
use crate::rtc_engine::lk_runtime::LkRuntime;
|
||||
use crate::rtc_engine::rtc_session::{RtcSession, SessionEvent, SessionEvents};
|
||||
use crate::signal_client::{SignalError, SignalOptions};
|
||||
use crate::DataPacketKind;
|
||||
use livekit_api::signal_client::{SignalError, SignalOptions};
|
||||
use livekit_protocol as proto;
|
||||
use livekit_webrtc::prelude::*;
|
||||
use livekit_webrtc::session_description::SdpParseError;
|
||||
|
||||
@@ -4,9 +4,9 @@ use crate::prelude::TrackKind;
|
||||
use crate::rtc_engine::lk_runtime::LkRuntime;
|
||||
use crate::rtc_engine::peer_transport::PeerTransport;
|
||||
use crate::rtc_engine::rtc_events::{RtcEvent, RtcEvents};
|
||||
use crate::signal_client::{SignalClient, SignalEvent, SignalEvents, SignalOptions};
|
||||
use crate::track::LocalTrack;
|
||||
use crate::DataPacketKind;
|
||||
use livekit_api::signal_client::{SignalClient, SignalEvent, SignalEvents, SignalOptions};
|
||||
use livekit_protocol as proto;
|
||||
use livekit_webrtc::prelude::*;
|
||||
use parking_lot::Mutex;
|
||||
|
||||
Reference in New Issue
Block a user