diff --git a/Cargo.lock b/Cargo.lock index 72b1d95..e6cd049 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -382,6 +382,18 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "async-compression" +version = "0.4.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3976abdc8fe7d1133d43d304afd42abdf5bc3e1319d263d223bde07b5efc4be8" +dependencies = [ + "compression-codecs", + "compression-core", + "futures-io", + "pin-project-lite", +] + [[package]] name = "async-executor" version = "1.14.0" @@ -843,6 +855,17 @@ dependencies = [ "libc", ] +[[package]] +name = "chacha20" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core 0.10.1", +] + [[package]] name = "chrono" version = "0.4.45" @@ -933,6 +956,22 @@ dependencies = [ "memchr", ] +[[package]] +name = "compression-codecs" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2548391e9c1929c21bf6aa2680af86fe4c1b33e6cea9ac1cfeec0bd11218cf" +dependencies = [ + "compression-core", + "flate2", +] + +[[package]] +name = "compression-core" +version = "0.4.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc14f565cf027a105f7a44ccf9e5b424348421a1d8952a8fc9d499d313107789" + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -1001,6 +1040,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -1853,11 +1901,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", - "js-sys", "libc", "r-efi 5.3.0", "wasip2", - "wasm-bindgen", ] [[package]] @@ -1867,10 +1913,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi 6.0.0", + "rand_core 0.10.1", "wasip2", "wasip3", + "wasm-bindgen", ] [[package]] @@ -2716,9 +2765,9 @@ dependencies = [ [[package]] name = "libwebrtc" -version = "0.3.42" +version = "0.3.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5497ff0694ddcee8f88129c78139defa5ec3fc434c3e182906ed0a72372bd9" +checksum = "e222d9f53f1fc61dd2656c4835657d987bd387019e8f6026329c918178044eff" dependencies = [ "cxx", "jni 0.21.1", @@ -2779,14 +2828,15 @@ checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" [[package]] name = "livekit" -version = "0.7.53" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa8ed793e154d63b588397ea7a84cfb3606b6d049f4d24137d9d9e0384617059" +checksum = "5c9a22daebb6058be54653f1f6a02eae6a353f9986f73b4c68dc11365134d198" dependencies = [ "base64 0.22.1", "bmrng", "bytes", "chrono", + "flate2", "futures-util", "lazy_static", "libloading", @@ -2810,19 +2860,19 @@ dependencies = [ [[package]] name = "livekit-api" -version = "0.5.6" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e827d3444235ddccf360fc1d4737034e86ee2ea2c0a696f148ecc08e7249bfd3" +checksum = "f4ed580af1187bd8fad22a981fde55cad03d4f9468d9eb9c6ecce6c753371aae" dependencies = [ "base64 0.21.7", "bytes", "device-info", "flate2", - "futures-util", "hmac", "http", "jsonwebtoken", "livekit-common", + "livekit-net", "livekit-protocol", "livekit-runtime", "log", @@ -2830,9 +2880,8 @@ dependencies = [ "parking_lot", "pbjson-types", "prost", - "rand", + "rand 0.9.4", "reqwest", - "rustls-native-certs", "scopeguard", "serde", "serde_json", @@ -2840,30 +2889,29 @@ dependencies = [ "signature", "thiserror 2.0.18", "tokio", - "tokio-rustls", - "tokio-tungstenite", "url", ] [[package]] name = "livekit-common" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a76cd816c062654d105b697ebab136da87d14126ee77b2f13280cb895bcb58" +checksum = "f903bfee33454f21c553dbf14d6f4ffbf062157b23b04fde9821cbb94ff01169" dependencies = [ "livekit-protocol", ] [[package]] name = "livekit-data-stream" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69ad1cca8f05fbe29026d99931884641199df544c33777d1f1b321df6f1031dd" +checksum = "2dfdf91af5f2dade508e2f81c7f63c79f77461f3d15cabe6b7059fe5f2839d58" dependencies = [ + "async-compression", "bmrng", "bytes", "chrono", - "flate2", + "from_variants", "futures-util", "livekit-common", "livekit-protocol", @@ -2872,14 +2920,15 @@ dependencies = [ "prost", "thiserror 2.0.18", "tokio", + "tokio-stream", "uuid", ] [[package]] name = "livekit-datatrack" -version = "0.1.11" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201bec4becf4db2b0af616a73ff3b2421f6af3693c287b82f5182028ee36e5f5" +checksum = "376a22d6dae592bff4068a551343461b8e683ffe70aab92e037fb91cb9237ad2" dependencies = [ "anyhow", "bytes", @@ -2890,17 +2939,38 @@ dependencies = [ "livekit-protocol", "livekit-runtime", "log", - "rand", + "rand 0.9.4", "thiserror 2.0.18", "tokio", "tokio-stream", ] +[[package]] +name = "livekit-net" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46155c42ad7acccca96a0d8be2bd0f379565f93e85144fb3aa6fa406371fee22" +dependencies = [ + "async-trait", + "base64 0.21.7", + "bytes", + "futures-util", + "http", + "livekit-runtime", + "log", + "reqwest", + "rustls-native-certs", + "tokio", + "tokio-rustls", + "tokio-tungstenite", + "url", +] + [[package]] name = "livekit-protocol" -version = "0.7.10" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d26880e94e2f9bab298445e7d86a3794453d211a12ddbd051bd9991a343f9ff" +checksum = "526f22bddf409e5f15449d55cf341647d7c16a1f43df9db9b05be106e4208e1c" dependencies = [ "pbjson", "pbjson-types", @@ -4094,14 +4164,15 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.14" +version = "0.11.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" +checksum = "2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560" dependencies = [ "bytes", - "getrandom 0.3.4", + "getrandom 0.4.2", "lru-slab", - "rand", + "rand 0.10.2", + "rand_pcg", "ring", "rustc-hash 2.1.2", "rustls", @@ -4158,6 +4229,17 @@ dependencies = [ "rand_core 0.9.5", ] +[[package]] +name = "rand" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" +dependencies = [ + "chacha20", + "getrandom 0.4.2", + "rand_core 0.10.1", +] + [[package]] name = "rand_chacha" version = "0.9.0" @@ -4186,6 +4268,21 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "rand_pcg" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" +dependencies = [ + "rand_core 0.10.1", +] + [[package]] name = "range-alloc" version = "0.1.5" @@ -4219,7 +4316,7 @@ dependencies = [ "num-traits", "paste", "profiling", - "rand", + "rand 0.9.4", "rand_chacha", "simd_helpers", "thiserror 2.0.18", @@ -4722,7 +4819,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -4733,7 +4830,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -5348,7 +5445,7 @@ dependencies = [ "http", "httparse", "log", - "rand", + "rand 0.9.4", "rustls", "rustls-pki-types", "sha1", @@ -5810,9 +5907,9 @@ dependencies = [ [[package]] name = "webrtc-sys" -version = "0.3.39" +version = "0.3.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a555de886b8d4961e6c2878ac3ca1f716b75c77f60311c5cf6ed136d0df14e1" +checksum = "2bd328126bc3653b10eab635579f74a562a472ff032ff09b5d1681d35e6201fd" dependencies = [ "cc", "cxx", diff --git a/Cargo.toml b/Cargo.toml index 117bc0f..d0a6793 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,8 +18,8 @@ tokio = { version = "1", features = ["full", "parking_lot"] } # egui-wgpu 0.35 requires wgpu ^29.0; "29.0" resolves to a compatible 29.0.x. wgpu = "29.0" winit = { version = "0.30.13", features = [ "android-native-activity" ] } -livekit = { version = "0.7.49", features = ["rustls-tls-native-roots"] } -livekit-api = { version = "0.5.4", default-features = false, features = ["access-token"] } +livekit = { version = "0.8.3", features = ["rustls-tls-native-roots"] } +livekit-api = { version = "0.6.3", default-features = false, features = ["access-token"] } # For local SDK development, comment out the two lines above and uncomment these # (clone https://github.com/livekit/rust-sdks to ../rust-sdks first; see diff --git a/src/service.rs b/src/service.rs index addf4f9..4187361 100644 --- a/src/service.rs +++ b/src/service.rs @@ -355,19 +355,13 @@ async fn service_task(inner: Arc, mut cmd_rx: mpsc::UnboundedRecei tokio::spawn(async move { let result = match payload { DataStreamPayload::Text(text) => { - let options = StreamTextOptions { - topic, - destination_identities, - ..Default::default() - }; + let options = StreamTextOptions::new_with_topic(topic) + .with_destination_identities(destination_identities); local.send_text(&text, options).await.map(|info| info.id) } DataStreamPayload::Bytes(bytes) => { - let options = StreamByteOptions { - topic, - destination_identities, - ..Default::default() - }; + let options = StreamByteOptions::new_with_topic(topic) + .with_destination_identities(destination_identities); local.send_bytes(bytes, options).await.map(|info| info.id) } };