From 6327ada2315627f1ab6937dc55ce20e3ef07c235 Mon Sep 17 00:00:00 2001 From: "knope-bot[bot]" <152252888+knope-bot[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2026 16:12:17 +0000 Subject: [PATCH] Release packages --- ...d_caching_to_livekit_token_source_crate.md | 5 --- .changeset/add_e2e_signalling_tests.md | 8 ---- ...omatically_retry_webrtc_build_downloads.md | 9 ---- .../bump_libwebrtc_to_webrtc_b9233c3_2.md | 20 --------- .changeset/enable_warp_by_default.md | 18 -------- ...pose_remote_data_track_pipeline_options.md | 5 --- .changeset/extract_livekit_token_crate.md | 15 ------- .changeset/feat_upgrade_libwebrtc_to_m150.md | 9 ---- ...he_bytes_custom_type_once_in_livekit_co.md | 8 ---- .changeset/reuse_datatrack_bytes_converter.md | 7 --- .changeset/strip-ios-ffi-dwarf.md | 5 --- .changeset/yuv_sys_submodule_guard_error.md | 7 --- Cargo.lock | 28 ++++++------ Cargo.toml | 26 +++++------ imgproc/CHANGELOG.md | 6 +++ imgproc/Cargo.toml | 2 +- libwebrtc/CHANGELOG.md | 34 ++++++++++++++ libwebrtc/Cargo.toml | 2 +- livekit-api/CHANGELOG.md | 16 +++++++ livekit-api/Cargo.toml | 2 +- livekit-common/CHANGELOG.md | 5 +++ livekit-common/Cargo.toml | 2 +- livekit-data-stream/CHANGELOG.md | 6 +++ livekit-data-stream/Cargo.toml | 2 +- livekit-datatrack/CHANGELOG.md | 6 +++ livekit-datatrack/Cargo.toml | 2 +- .../npm/darwin-arm64/package.json | 2 +- .../npm/darwin-x64/package.json | 2 +- .../npm/linux-arm64-gnu/package.json | 2 +- .../npm/linux-x64-gnu/package.json | 2 +- .../npm/win32-x64-msvc/package.json | 2 +- livekit-ffi-node-bindings/package.json | 2 +- livekit-ffi/CHANGELOG.md | 45 +++++++++++++++++++ livekit-ffi/Cargo.toml | 2 +- livekit-token-source/CHANGELOG.md | 6 +++ livekit-token-source/Cargo.toml | 2 +- livekit-token/CHANGELOG.md | 13 ++++++ livekit-token/Cargo.toml | 2 +- livekit-uniffi/CHANGELOG.md | 17 +++++++ livekit-uniffi/Cargo.toml | 2 +- livekit/CHANGELOG.md | 45 +++++++++++++++++++ livekit/Cargo.toml | 2 +- webrtc-sys/CHANGELOG.md | 32 +++++++++++++ webrtc-sys/Cargo.toml | 2 +- webrtc-sys/build/CHANGELOG.md | 20 +++++++++ webrtc-sys/build/Cargo.toml | 2 +- yuv-sys/CHANGELOG.md | 6 +++ yuv-sys/Cargo.toml | 2 +- 48 files changed, 304 insertions(+), 163 deletions(-) delete mode 100644 .changeset/add_caching_to_livekit_token_source_crate.md delete mode 100644 .changeset/add_e2e_signalling_tests.md delete mode 100644 .changeset/automatically_retry_webrtc_build_downloads.md delete mode 100644 .changeset/bump_libwebrtc_to_webrtc_b9233c3_2.md delete mode 100644 .changeset/enable_warp_by_default.md delete mode 100644 .changeset/expose_remote_data_track_pipeline_options.md delete mode 100644 .changeset/extract_livekit_token_crate.md delete mode 100644 .changeset/feat_upgrade_libwebrtc_to_m150.md delete mode 100644 .changeset/fix_uniffi_register_the_bytes_custom_type_once_in_livekit_co.md delete mode 100644 .changeset/reuse_datatrack_bytes_converter.md delete mode 100644 .changeset/strip-ios-ffi-dwarf.md delete mode 100644 .changeset/yuv_sys_submodule_guard_error.md create mode 100644 livekit-common/CHANGELOG.md diff --git a/.changeset/add_caching_to_livekit_token_source_crate.md b/.changeset/add_caching_to_livekit_token_source_crate.md deleted file mode 100644 index 6940f9855..000000000 --- a/.changeset/add_caching_to_livekit_token_source_crate.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -livekit-token-source: minor ---- - -Adds optional caching version of the token sources \ No newline at end of file diff --git a/.changeset/add_e2e_signalling_tests.md b/.changeset/add_e2e_signalling_tests.md deleted file mode 100644 index ce17d266b..000000000 --- a/.changeset/add_e2e_signalling_tests.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -livekit: patch -livekit-api: patch -livekit-ffi: patch -livekit-uniffi: patch ---- - -differentiate signal connection errors correctly from timeouts - #1234 (@lukasIO) diff --git a/.changeset/automatically_retry_webrtc_build_downloads.md b/.changeset/automatically_retry_webrtc_build_downloads.md deleted file mode 100644 index 4410c3d67..000000000 --- a/.changeset/automatically_retry_webrtc_build_downloads.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -webrtc-sys: patch -webrtc-sys-build: patch -livekit: patch -livekit-ffi: patch -libwebrtc: patch ---- - -# Automatically retry webrtc build downloads diff --git a/.changeset/bump_libwebrtc_to_webrtc_b9233c3_2.md b/.changeset/bump_libwebrtc_to_webrtc_b9233c3_2.md deleted file mode 100644 index 45a778a7b..000000000 --- a/.changeset/bump_libwebrtc_to_webrtc_b9233c3_2.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -webrtc-sys: patch -webrtc-sys-build: patch -libwebrtc: patch -livekit: patch -livekit-ffi: patch ---- - -fix: bump libwebrtc to webrtc-b9233c3-2 so TURN/TLS can use the OS trust store - -WebRTC validates TURN/TLS against a small set of anchors compiled into -`rtc_base/ssl_roots.h`, generated in 2023 from Google's own PKI list. It has no -Amazon, Starfield Services or ISRG roots, so a relay-only connection to a TURN -server fronted by AWS ACM or Let's Encrypt times out with `unknown_ca` even -though the host OS trusts the chain. - -This build picks up webrtc-sdk/webrtc#277, which falls back to the operating -system's trust store when the built-in anchors yield no path. It sits in -`rtc_base` below every SDK, so the C++ API that webrtc-sys binds is covered -without any Rust-side change. diff --git a/.changeset/enable_warp_by_default.md b/.changeset/enable_warp_by_default.md deleted file mode 100644 index ef50bf848..000000000 --- a/.changeset/enable_warp_by_default.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -libwebrtc: minor -livekit: minor -webrtc-sys: patch -livekit-ffi: patch ---- - -feat: enable WARP (SPED + SNAP) by default, gated by the server - -WARP is now always enabled on the client and negotiated with the SFU: SPED -(DTLS-in-STUN) via the `WebRTC-IceHandshakeDtls` field trial, and SNAP -(SCTP-INIT-in-SDP) via the `RtcConfiguration.enable_sctp_snap` field. When the -server does not enable WARP it is not advertised and the connection falls back to -plain DTLS/SCTP, so there is no client-side toggle. - -BREAKING CHANGE: `libwebrtc::RtcConfiguration` is now `#[non_exhaustive]` and has a -new `enable_sctp_snap` field. Construct it from `RtcConfiguration::default()` and set -the fields you need instead of a struct literal. diff --git a/.changeset/expose_remote_data_track_pipeline_options.md b/.changeset/expose_remote_data_track_pipeline_options.md deleted file mode 100644 index b40c6f844..000000000 --- a/.changeset/expose_remote_data_track_pipeline_options.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -livekit-uniffi: patch ---- - -Expose `RemoteDataTrack.set_pipeline_options` and `RemoteDataTrackPipelineOptions` (`max_partial_frames`) over UniFFI, matching the JS and Rust SDKs diff --git a/.changeset/extract_livekit_token_crate.md b/.changeset/extract_livekit_token_crate.md deleted file mode 100644 index a85efcdf5..000000000 --- a/.changeset/extract_livekit_token_crate.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -livekit: patch -livekit-api: patch -livekit-ffi: patch -livekit-token: patch -livekit-uniffi: patch ---- - -Moves access-token generation and verification into a new `livekit-token` crate. -`livekit_api::access_token::*` continues to resolve to the same types via a -re-export, so no consumer changes are needed. - -Also fixes the `services-tokio` and `services-async` features, which used the -access-token types without declaring the `access-token` feature. Building with -`--no-default-features --features services-tokio` previously failed to compile. diff --git a/.changeset/feat_upgrade_libwebrtc_to_m150.md b/.changeset/feat_upgrade_libwebrtc_to_m150.md deleted file mode 100644 index 4bb54060d..000000000 --- a/.changeset/feat_upgrade_libwebrtc_to_m150.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -libwebrtc: patch -livekit: patch -livekit-ffi: patch -webrtc-sys: patch -webrtc-sys-build: patch ---- - -feat: upgrade libwebrtc to m150. - #1284 (@cloudwebrtc) diff --git a/.changeset/fix_uniffi_register_the_bytes_custom_type_once_in_livekit_co.md b/.changeset/fix_uniffi_register_the_bytes_custom_type_once_in_livekit_co.md deleted file mode 100644 index 3198bd4fb..000000000 --- a/.changeset/fix_uniffi_register_the_bytes_custom_type_once_in_livekit_co.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -livekit: patch -livekit-api: patch -livekit-data-stream: patch -livekit-ffi: patch ---- - -fix(uniffi): register the Bytes custom type once, in livekit-common - #1343 (@pblazej) diff --git a/.changeset/reuse_datatrack_bytes_converter.md b/.changeset/reuse_datatrack_bytes_converter.md deleted file mode 100644 index bfa725e12..000000000 --- a/.changeset/reuse_datatrack_bytes_converter.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -livekit-uniffi: patch -livekit-datatrack: patch -livekit-common: patch ---- - -Register the `Bytes` UniFFI custom type once in `livekit-common` and borrow it from each component with `uniffi::use_remote_type!`, so the converter is emitted once and the post-generation Swift workaround is no longer needed diff --git a/.changeset/strip-ios-ffi-dwarf.md b/.changeset/strip-ios-ffi-dwarf.md deleted file mode 100644 index 183846f21..000000000 --- a/.changeset/strip-ios-ffi-dwarf.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -livekit-ffi: patch ---- - -Strip DWARF debug information from release iOS FFI archives. diff --git a/.changeset/yuv_sys_submodule_guard_error.md b/.changeset/yuv_sys_submodule_guard_error.md deleted file mode 100644 index 5aa9aafc5..000000000 --- a/.changeset/yuv_sys_submodule_guard_error.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -yuv-sys: patch -livekit-ffi: patch -imgproc: patch ---- - -yuv-sys: fail with an actionable error when the libyuv submodule is not initialized diff --git a/Cargo.lock b/Cargo.lock index 7e1314809..94f152a8e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3358,7 +3358,7 @@ dependencies = [ [[package]] name = "imgproc" -version = "0.3.19" +version = "0.3.20" dependencies = [ "yuv-sys", ] @@ -3761,7 +3761,7 @@ dependencies = [ [[package]] name = "libwebrtc" -version = "0.3.45" +version = "0.3.46" dependencies = [ "cxx", "env_logger 0.11.11", @@ -3890,7 +3890,7 @@ checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" [[package]] name = "livekit" -version = "0.8.3" +version = "0.8.4" dependencies = [ "anyhow", "base64 0.22.1", @@ -3927,7 +3927,7 @@ dependencies = [ [[package]] name = "livekit-api" -version = "0.6.3" +version = "0.6.4" dependencies = [ "async-trait", "base64 0.21.7", @@ -3960,7 +3960,7 @@ dependencies = [ [[package]] name = "livekit-common" -version = "0.1.1" +version = "0.1.2" dependencies = [ "bytes", "livekit-protocol", @@ -3969,7 +3969,7 @@ dependencies = [ [[package]] name = "livekit-data-stream" -version = "0.1.2" +version = "0.1.3" dependencies = [ "async-compression", "bmrng", @@ -3991,7 +3991,7 @@ dependencies = [ [[package]] name = "livekit-datatrack" -version = "0.1.13" +version = "0.1.14" dependencies = [ "anyhow", "bytes", @@ -4014,7 +4014,7 @@ dependencies = [ [[package]] name = "livekit-ffi" -version = "0.12.75" +version = "0.12.76" dependencies = [ "bytes", "console-subscriber", @@ -4087,7 +4087,7 @@ dependencies = [ [[package]] name = "livekit-token" -version = "0.1.0" +version = "0.1.1" dependencies = [ "hmac", "jsonwebtoken", @@ -4100,7 +4100,7 @@ dependencies = [ [[package]] name = "livekit-token-source" -version = "0.1.1" +version = "0.1.2" dependencies = [ "async-trait", "base64 0.21.7", @@ -4113,7 +4113,7 @@ dependencies = [ [[package]] name = "livekit-uniffi" -version = "0.1.8" +version = "0.1.9" dependencies = [ "bytes", "camino", @@ -8680,7 +8680,7 @@ dependencies = [ [[package]] name = "webrtc-sys" -version = "0.3.42" +version = "0.3.43" dependencies = [ "cc", "cxx", @@ -8694,7 +8694,7 @@ dependencies = [ [[package]] name = "webrtc-sys-build" -version = "0.3.18" +version = "0.3.19" dependencies = [ "anyhow", "fs2", @@ -9497,7 +9497,7 @@ dependencies = [ [[package]] name = "yuv-sys" -version = "0.3.14" +version = "0.3.15" dependencies = [ "bindgen 0.72.1", "cc", diff --git a/Cargo.toml b/Cargo.toml index 7c64dfa64..2888c72b9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,16 +49,16 @@ license = "Apache-2.0" [workspace.dependencies] device-info = { version = "0.1.1", path = "device-info" } -imgproc = { version = "0.3.19", path = "imgproc" } -libwebrtc = { version = "0.3.45", path = "libwebrtc" } -livekit = { version = "0.8.3", path = "livekit" } -livekit-api = { version = "0.6.3", path = "livekit-api" } -livekit-ffi = { version = "0.12.75", path = "livekit-ffi" } -livekit-datatrack = { version = "0.1.13", path = "livekit-datatrack" } -livekit-token = { version = "0.1.0", path = "livekit-token" } -livekit-token-source = { version = "0.1.1", path = "livekit-token-source" } -livekit-common = { version = "0.1.1", path = "livekit-common" } -livekit-data-stream = { version = "0.1.2", path = "livekit-data-stream" } +imgproc = { version = "0.3.20", path = "imgproc" } +libwebrtc = { version = "0.3.46", path = "libwebrtc" } +livekit = { version = "0.8.4", path = "livekit" } +livekit-api = { version = "0.6.4", path = "livekit-api" } +livekit-ffi = { version = "0.12.76", path = "livekit-ffi" } +livekit-datatrack = { version = "0.1.14", path = "livekit-datatrack" } +livekit-token = { version = "0.1.1", path = "livekit-token" } +livekit-token-source = { version = "0.1.2", path = "livekit-token-source" } +livekit-common = { version = "0.1.2", path = "livekit-common" } +livekit-data-stream = { version = "0.1.3", path = "livekit-data-stream" } livekit-net = { version = "0.1.2", path = "livekit-net" } livekit-protocol = { version = "0.7.12", path = "livekit-protocol" } # default-features off so each consumer selects its runtime explicitly @@ -66,9 +66,9 @@ livekit-protocol = { version = "0.7.12", path = "livekit-protocol" } # feature is forced on everywhere and collides with `async`/`dispatcher` builds. livekit-runtime = { version = "0.4.0", path = "livekit-runtime", default-features = false } soxr-sys = { version = "0.1.3", path = "soxr-sys" } -webrtc-sys = { version = "0.3.42", path = "webrtc-sys" } -webrtc-sys-build = { version = "0.3.18", path = "webrtc-sys/build" } -yuv-sys = { version = "0.3.14", path = "yuv-sys" } +webrtc-sys = { version = "0.3.43", path = "webrtc-sys" } +webrtc-sys-build = { version = "0.3.19", path = "webrtc-sys/build" } +yuv-sys = { version = "0.3.15", path = "yuv-sys" } anyhow = "1.0" bytes = "1.10" diff --git a/imgproc/CHANGELOG.md b/imgproc/CHANGELOG.md index ce7a45c5f..7b99f6ee3 100644 --- a/imgproc/CHANGELOG.md +++ b/imgproc/CHANGELOG.md @@ -49,6 +49,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - move imgproc to main rust-sdks monorepo +## 0.3.20 (2026-08-25) + +### Fixes + +- yuv-sys: fail with an actionable error when the libyuv submodule is not initialized + ## 0.3.19 (2026-04-02) ### Fixes diff --git a/imgproc/Cargo.toml b/imgproc/Cargo.toml index 2c17bb3e8..55e0534b6 100644 --- a/imgproc/Cargo.toml +++ b/imgproc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "imgproc" -version = "0.3.19" +version = "0.3.20" edition.workspace = true homepage.workspace = true repository.workspace = true diff --git a/libwebrtc/CHANGELOG.md b/libwebrtc/CHANGELOG.md index d77286729..50b7c74f5 100644 --- a/libwebrtc/CHANGELOG.md +++ b/libwebrtc/CHANGELOG.md @@ -139,6 +139,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - bump libwebrtc to m125 +## 0.3.46 (2026-08-25) + +### Features + +#### feat: enable WARP (SPED + SNAP) by default, gated by the server + +WARP is now always enabled on the client and negotiated with the SFU: SPED +(DTLS-in-STUN) via the `WebRTC-IceHandshakeDtls` field trial, and SNAP +(SCTP-INIT-in-SDP) via the `RtcConfiguration.enable_sctp_snap` field. When the +server does not enable WARP it is not advertised and the connection falls back to +plain DTLS/SCTP, so there is no client-side toggle. + +BREAKING CHANGE: `libwebrtc::RtcConfiguration` is now `#[non_exhaustive]` and has a +new `enable_sctp_snap` field. Construct it from `RtcConfiguration::default()` and set +the fields you need instead of a struct literal. + +### Fixes + +- Automatically retry webrtc build downloads +- feat: upgrade libwebrtc to m150. - #1284 (@cloudwebrtc) + +#### fix: bump libwebrtc to webrtc-b9233c3-2 so TURN/TLS can use the OS trust store + +WebRTC validates TURN/TLS against a small set of anchors compiled into +`rtc_base/ssl_roots.h`, generated in 2023 from Google's own PKI list. It has no +Amazon, Starfield Services or ISRG roots, so a relay-only connection to a TURN +server fronted by AWS ACM or Let's Encrypt times out with `unknown_ca` even +though the host OS trusts the chain. + +This build picks up webrtc-sdk/webrtc#277, which falls back to the operating +system's trust store when the built-in anchors yield no path. It sits in +`rtc_base` below every SDK, so the C++ API that webrtc-sys binds is covered +without any Rust-side change. + ## 0.3.45 (2026-08-10) ### Fixes diff --git a/libwebrtc/Cargo.toml b/libwebrtc/Cargo.toml index c90c0799a..8680573e2 100644 --- a/libwebrtc/Cargo.toml +++ b/libwebrtc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libwebrtc" -version = "0.3.45" +version = "0.3.46" edition.workspace = true homepage = "https://livekit.io" license.workspace = true diff --git a/livekit-api/CHANGELOG.md b/livekit-api/CHANGELOG.md index 38a91132a..c8d71c8a4 100644 --- a/livekit-api/CHANGELOG.md +++ b/livekit-api/CHANGELOG.md @@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## 0.6.4 (2026-08-25) + +### Fixes + +- differentiate signal connection errors correctly from timeouts - #1234 (@lukasIO) +- fix(uniffi): register the Bytes custom type once, in livekit-common - #1343 (@pblazej) + +#### Moves access-token generation and verification into a new `livekit-token` crate. + +`livekit_api::access_token::*` continues to resolve to the same types via a +re-export, so no consumer changes are needed. + +Also fixes the `services-tokio` and `services-async` features, which used the +access-token types without declaring the `access-token` feature. Building with +`--no-default-features --features services-tokio` previously failed to compile. + ## 0.6.3 (2026-08-10) ### Features diff --git a/livekit-api/Cargo.toml b/livekit-api/Cargo.toml index 598c87394..2e0f54b66 100644 --- a/livekit-api/Cargo.toml +++ b/livekit-api/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "livekit-api" -version = "0.6.3" +version = "0.6.4" license.workspace = true description = "Rust Server SDK for LiveKit" edition.workspace = true diff --git a/livekit-common/CHANGELOG.md b/livekit-common/CHANGELOG.md new file mode 100644 index 000000000..367f68ca5 --- /dev/null +++ b/livekit-common/CHANGELOG.md @@ -0,0 +1,5 @@ +## 0.1.2 (2026-08-25) + +### Fixes + +- Register the `Bytes` UniFFI custom type once in `livekit-common` and borrow it from each component with `uniffi::use_remote_type!`, so the converter is emitted once and the post-generation Swift workaround is no longer needed diff --git a/livekit-common/Cargo.toml b/livekit-common/Cargo.toml index 0e2d03f44..a4075b76a 100644 --- a/livekit-common/Cargo.toml +++ b/livekit-common/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "livekit-common" description = "Common foundational types shared across LiveKit crates" -version = "0.1.1" +version = "0.1.2" readme = "README.md" license.workspace = true edition.workspace = true diff --git a/livekit-data-stream/CHANGELOG.md b/livekit-data-stream/CHANGELOG.md index 25bb473e6..6b1b7faa8 100644 --- a/livekit-data-stream/CHANGELOG.md +++ b/livekit-data-stream/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.1.3 (2026-08-25) + +### Fixes + +- fix(uniffi): register the Bytes custom type once, in livekit-common - #1343 (@pblazej) + ## 0.1.2 (2026-08-03) ### Fixes diff --git a/livekit-data-stream/Cargo.toml b/livekit-data-stream/Cargo.toml index 0cfc59640..fb906af54 100644 --- a/livekit-data-stream/Cargo.toml +++ b/livekit-data-stream/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "livekit-data-stream" description = "Data stream core logic for LiveKit" -version = "0.1.2" +version = "0.1.3" readme = "README.md" license.workspace = true edition.workspace = true diff --git a/livekit-datatrack/CHANGELOG.md b/livekit-datatrack/CHANGELOG.md index b6c641040..1fe827084 100644 --- a/livekit-datatrack/CHANGELOG.md +++ b/livekit-datatrack/CHANGELOG.md @@ -1,4 +1,10 @@ # Changelog +## 0.1.14 (2026-08-25) + +### Fixes + +- Register the `Bytes` UniFFI custom type once in `livekit-common` and borrow it from each component with `uniffi::use_remote_type!`, so the converter is emitted once and the post-generation Swift workaround is no longer needed + ## 0.1.13 (2026-07-29) ### Fixes diff --git a/livekit-datatrack/Cargo.toml b/livekit-datatrack/Cargo.toml index 1caf9968c..187a7ed04 100644 --- a/livekit-datatrack/Cargo.toml +++ b/livekit-datatrack/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "livekit-datatrack" description = "Data track core for LiveKit" -version = "0.1.13" +version = "0.1.14" readme = "README.md" license.workspace = true edition.workspace = true diff --git a/livekit-ffi-node-bindings/npm/darwin-arm64/package.json b/livekit-ffi-node-bindings/npm/darwin-arm64/package.json index 5a9f4a046..9599fe618 100644 --- a/livekit-ffi-node-bindings/npm/darwin-arm64/package.json +++ b/livekit-ffi-node-bindings/npm/darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/rtc-ffi-bindings-darwin-arm64", - "version": "0.12.75", + "version": "0.12.76", "cpu": [ "arm64" ], diff --git a/livekit-ffi-node-bindings/npm/darwin-x64/package.json b/livekit-ffi-node-bindings/npm/darwin-x64/package.json index d884e94c0..71e01c140 100644 --- a/livekit-ffi-node-bindings/npm/darwin-x64/package.json +++ b/livekit-ffi-node-bindings/npm/darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/rtc-ffi-bindings-darwin-x64", - "version": "0.12.75", + "version": "0.12.76", "cpu": [ "x64" ], diff --git a/livekit-ffi-node-bindings/npm/linux-arm64-gnu/package.json b/livekit-ffi-node-bindings/npm/linux-arm64-gnu/package.json index d41b31839..a3200c31f 100644 --- a/livekit-ffi-node-bindings/npm/linux-arm64-gnu/package.json +++ b/livekit-ffi-node-bindings/npm/linux-arm64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/rtc-ffi-bindings-linux-arm64-gnu", - "version": "0.12.75", + "version": "0.12.76", "cpu": [ "arm64" ], diff --git a/livekit-ffi-node-bindings/npm/linux-x64-gnu/package.json b/livekit-ffi-node-bindings/npm/linux-x64-gnu/package.json index cf9589fca..86223795c 100644 --- a/livekit-ffi-node-bindings/npm/linux-x64-gnu/package.json +++ b/livekit-ffi-node-bindings/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/rtc-ffi-bindings-linux-x64-gnu", - "version": "0.12.75", + "version": "0.12.76", "cpu": [ "x64" ], diff --git a/livekit-ffi-node-bindings/npm/win32-x64-msvc/package.json b/livekit-ffi-node-bindings/npm/win32-x64-msvc/package.json index 7d90ef8c6..eb5fe1528 100644 --- a/livekit-ffi-node-bindings/npm/win32-x64-msvc/package.json +++ b/livekit-ffi-node-bindings/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/rtc-ffi-bindings-win32-x64-msvc", - "version": "0.12.75", + "version": "0.12.76", "cpu": [ "x64" ], diff --git a/livekit-ffi-node-bindings/package.json b/livekit-ffi-node-bindings/package.json index d95144273..f09d8b1af 100644 --- a/livekit-ffi-node-bindings/package.json +++ b/livekit-ffi-node-bindings/package.json @@ -3,7 +3,7 @@ "description": "LiveKit RTC Node FFI bindings for internal use only", "license": "Apache-2.0", "author": "LiveKit", - "version": "0.12.75", + "version": "0.12.76", "main": "index.js", "types": "index.d.ts", "type": "commonjs", diff --git a/livekit-ffi/CHANGELOG.md b/livekit-ffi/CHANGELOG.md index 5db45f075..5e865bcdb 100644 --- a/livekit-ffi/CHANGELOG.md +++ b/livekit-ffi/CHANGELOG.md @@ -316,6 +316,51 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - bump libwebrtc to m125 +## 0.12.76 (2026-08-25) + +### Fixes + +- differentiate signal connection errors correctly from timeouts - #1234 (@lukasIO) +- Automatically retry webrtc build downloads +- feat: upgrade libwebrtc to m150. - #1284 (@cloudwebrtc) +- fix(uniffi): register the Bytes custom type once, in livekit-common - #1343 (@pblazej) +- Strip DWARF debug information from release iOS FFI archives. +- yuv-sys: fail with an actionable error when the libyuv submodule is not initialized + +#### fix: bump libwebrtc to webrtc-b9233c3-2 so TURN/TLS can use the OS trust store + +WebRTC validates TURN/TLS against a small set of anchors compiled into +`rtc_base/ssl_roots.h`, generated in 2023 from Google's own PKI list. It has no +Amazon, Starfield Services or ISRG roots, so a relay-only connection to a TURN +server fronted by AWS ACM or Let's Encrypt times out with `unknown_ca` even +though the host OS trusts the chain. + +This build picks up webrtc-sdk/webrtc#277, which falls back to the operating +system's trust store when the built-in anchors yield no path. It sits in +`rtc_base` below every SDK, so the C++ API that webrtc-sys binds is covered +without any Rust-side change. + +#### feat: enable WARP (SPED + SNAP) by default, gated by the server + +WARP is now always enabled on the client and negotiated with the SFU: SPED +(DTLS-in-STUN) via the `WebRTC-IceHandshakeDtls` field trial, and SNAP +(SCTP-INIT-in-SDP) via the `RtcConfiguration.enable_sctp_snap` field. When the +server does not enable WARP it is not advertised and the connection falls back to +plain DTLS/SCTP, so there is no client-side toggle. + +BREAKING CHANGE: `libwebrtc::RtcConfiguration` is now `#[non_exhaustive]` and has a +new `enable_sctp_snap` field. Construct it from `RtcConfiguration::default()` and set +the fields you need instead of a struct literal. + +#### Moves access-token generation and verification into a new `livekit-token` crate. + +`livekit_api::access_token::*` continues to resolve to the same types via a +re-export, so no consumer changes are needed. + +Also fixes the `services-tokio` and `services-async` features, which used the +access-token types without declaring the `access-token` feature. Building with +`--no-default-features --features services-tokio` previously failed to compile. + ## 0.12.75 (2026-08-10) ### Features diff --git a/livekit-ffi/Cargo.toml b/livekit-ffi/Cargo.toml index dc640f993..df0d661ac 100644 --- a/livekit-ffi/Cargo.toml +++ b/livekit-ffi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "livekit-ffi" -version = "0.12.75" +version = "0.12.76" edition.workspace = true license.workspace = true description = "FFI interface for bindings in other languages" diff --git a/livekit-token-source/CHANGELOG.md b/livekit-token-source/CHANGELOG.md index c06c0f1af..7c3e70b8c 100644 --- a/livekit-token-source/CHANGELOG.md +++ b/livekit-token-source/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.1.2 (2026-08-25) + +### Features + +- Adds optional caching version of the token sources + ## 0.1.1 (2026-08-10) ### Features diff --git a/livekit-token-source/Cargo.toml b/livekit-token-source/Cargo.toml index d03ae3859..35f46bbba 100644 --- a/livekit-token-source/Cargo.toml +++ b/livekit-token-source/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "livekit-token-source" description = "Token sources for the LiveKit Rust SDK" -version = "0.1.1" +version = "0.1.2" license.workspace = true edition.workspace = true repository.workspace = true diff --git a/livekit-token/CHANGELOG.md b/livekit-token/CHANGELOG.md index 283bda8f9..587ce70ae 100644 --- a/livekit-token/CHANGELOG.md +++ b/livekit-token/CHANGELOG.md @@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 0.1.1 (2026-08-25) + +### Fixes + +#### Moves access-token generation and verification into a new `livekit-token` crate. + +`livekit_api::access_token::*` continues to resolve to the same types via a +re-export, so no consumer changes are needed. + +Also fixes the `services-tokio` and `services-async` features, which used the +access-token types without declaring the `access-token` feature. Building with +`--no-default-features --features services-tokio` previously failed to compile. + ## 0.1.0 The initial release. This was broken out of [livekit-api](../livekit-api) into its own crate. diff --git a/livekit-token/Cargo.toml b/livekit-token/Cargo.toml index f3e130864..faf786fff 100644 --- a/livekit-token/Cargo.toml +++ b/livekit-token/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "livekit-token" -version = "0.1.0" +version = "0.1.1" license.workspace = true description = "Core logic for generating LiveKit tokens" edition.workspace = true diff --git a/livekit-uniffi/CHANGELOG.md b/livekit-uniffi/CHANGELOG.md index 078634715..8065b2885 100644 --- a/livekit-uniffi/CHANGELOG.md +++ b/livekit-uniffi/CHANGELOG.md @@ -1,3 +1,20 @@ +## 0.1.9 (2026-08-25) + +### Fixes + +- differentiate signal connection errors correctly from timeouts - #1234 (@lukasIO) +- Expose `RemoteDataTrack.set_pipeline_options` and `RemoteDataTrackPipelineOptions` (`max_partial_frames`) over UniFFI, matching the JS and Rust SDKs +- Register the `Bytes` UniFFI custom type once in `livekit-common` and borrow it from each component with `uniffi::use_remote_type!`, so the converter is emitted once and the post-generation Swift workaround is no longer needed + +#### Moves access-token generation and verification into a new `livekit-token` crate. + +`livekit_api::access_token::*` continues to resolve to the same types via a +re-export, so no consumer changes are needed. + +Also fixes the `services-tokio` and `services-async` features, which used the +access-token types without declaring the `access-token` feature. Building with +`--no-default-features --features services-tokio` previously failed to compile. + ## 0.1.8 (2026-08-03) ### Fixes diff --git a/livekit-uniffi/Cargo.toml b/livekit-uniffi/Cargo.toml index 8f5e3fd6a..0364de3a4 100644 --- a/livekit-uniffi/Cargo.toml +++ b/livekit-uniffi/Cargo.toml @@ -3,7 +3,7 @@ crate-type = ["cdylib", "staticlib", "lib"] [package] name = "livekit-uniffi" -version = "0.1.8" +version = "0.1.9" edition.workspace = true license.workspace = true description = "Experimental FFI interface using UniFFI" diff --git a/livekit/CHANGELOG.md b/livekit/CHANGELOG.md index 8eb7b22c4..219712544 100644 --- a/livekit/CHANGELOG.md +++ b/livekit/CHANGELOG.md @@ -257,6 +257,51 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - bump libwebrtc to m125 +## 0.8.4 (2026-08-25) + +### Features + +#### feat: enable WARP (SPED + SNAP) by default, gated by the server + +WARP is now always enabled on the client and negotiated with the SFU: SPED +(DTLS-in-STUN) via the `WebRTC-IceHandshakeDtls` field trial, and SNAP +(SCTP-INIT-in-SDP) via the `RtcConfiguration.enable_sctp_snap` field. When the +server does not enable WARP it is not advertised and the connection falls back to +plain DTLS/SCTP, so there is no client-side toggle. + +BREAKING CHANGE: `libwebrtc::RtcConfiguration` is now `#[non_exhaustive]` and has a +new `enable_sctp_snap` field. Construct it from `RtcConfiguration::default()` and set +the fields you need instead of a struct literal. + +### Fixes + +- differentiate signal connection errors correctly from timeouts - #1234 (@lukasIO) +- Automatically retry webrtc build downloads +- feat: upgrade libwebrtc to m150. - #1284 (@cloudwebrtc) +- fix(uniffi): register the Bytes custom type once, in livekit-common - #1343 (@pblazej) + +#### fix: bump libwebrtc to webrtc-b9233c3-2 so TURN/TLS can use the OS trust store + +WebRTC validates TURN/TLS against a small set of anchors compiled into +`rtc_base/ssl_roots.h`, generated in 2023 from Google's own PKI list. It has no +Amazon, Starfield Services or ISRG roots, so a relay-only connection to a TURN +server fronted by AWS ACM or Let's Encrypt times out with `unknown_ca` even +though the host OS trusts the chain. + +This build picks up webrtc-sdk/webrtc#277, which falls back to the operating +system's trust store when the built-in anchors yield no path. It sits in +`rtc_base` below every SDK, so the C++ API that webrtc-sys binds is covered +without any Rust-side change. + +#### Moves access-token generation and verification into a new `livekit-token` crate. + +`livekit_api::access_token::*` continues to resolve to the same types via a +re-export, so no consumer changes are needed. + +Also fixes the `services-tokio` and `services-async` features, which used the +access-token types without declaring the `access-token` feature. Building with +`--no-default-features --features services-tokio` previously failed to compile. + ## 0.8.3 (2026-08-10) ### Features diff --git a/livekit/Cargo.toml b/livekit/Cargo.toml index d3d2c8cf5..2b98a614f 100644 --- a/livekit/Cargo.toml +++ b/livekit/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "livekit" -version = "0.8.3" +version = "0.8.4" edition.workspace = true license.workspace = true description = "Rust Client SDK for LiveKit" diff --git a/webrtc-sys/CHANGELOG.md b/webrtc-sys/CHANGELOG.md index e77d8d53c..99663e7a3 100644 --- a/webrtc-sys/CHANGELOG.md +++ b/webrtc-sys/CHANGELOG.md @@ -165,6 +165,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - bump libwebrtc to m125 +## 0.3.43 (2026-08-25) + +### Fixes + +- Automatically retry webrtc build downloads +- feat: upgrade libwebrtc to m150. - #1284 (@cloudwebrtc) + +#### fix: bump libwebrtc to webrtc-b9233c3-2 so TURN/TLS can use the OS trust store + +WebRTC validates TURN/TLS against a small set of anchors compiled into +`rtc_base/ssl_roots.h`, generated in 2023 from Google's own PKI list. It has no +Amazon, Starfield Services or ISRG roots, so a relay-only connection to a TURN +server fronted by AWS ACM or Let's Encrypt times out with `unknown_ca` even +though the host OS trusts the chain. + +This build picks up webrtc-sdk/webrtc#277, which falls back to the operating +system's trust store when the built-in anchors yield no path. It sits in +`rtc_base` below every SDK, so the C++ API that webrtc-sys binds is covered +without any Rust-side change. + +#### feat: enable WARP (SPED + SNAP) by default, gated by the server + +WARP is now always enabled on the client and negotiated with the SFU: SPED +(DTLS-in-STUN) via the `WebRTC-IceHandshakeDtls` field trial, and SNAP +(SCTP-INIT-in-SDP) via the `RtcConfiguration.enable_sctp_snap` field. When the +server does not enable WARP it is not advertised and the connection falls back to +plain DTLS/SCTP, so there is no client-side toggle. + +BREAKING CHANGE: `libwebrtc::RtcConfiguration` is now `#[non_exhaustive]` and has a +new `enable_sctp_snap` field. Construct it from `RtcConfiguration::default()` and set +the fields you need instead of a struct literal. + ## 0.3.42 (2026-08-10) ### Fixes diff --git a/webrtc-sys/Cargo.toml b/webrtc-sys/Cargo.toml index 465db3fc3..0dc40648e 100644 --- a/webrtc-sys/Cargo.toml +++ b/webrtc-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "webrtc-sys" -version = "0.3.42" +version = "0.3.43" edition.workspace = true homepage = "https://livekit.io" license.workspace = true diff --git a/webrtc-sys/build/CHANGELOG.md b/webrtc-sys/build/CHANGELOG.md index 326338eed..011c48cf7 100644 --- a/webrtc-sys/build/CHANGELOG.md +++ b/webrtc-sys/build/CHANGELOG.md @@ -57,6 +57,26 @@ ### Added - bump libwebrtc to m125 +## 0.3.19 (2026-08-25) + +### Fixes + +- Automatically retry webrtc build downloads +- feat: upgrade libwebrtc to m150. - #1284 (@cloudwebrtc) + +#### fix: bump libwebrtc to webrtc-b9233c3-2 so TURN/TLS can use the OS trust store + +WebRTC validates TURN/TLS against a small set of anchors compiled into +`rtc_base/ssl_roots.h`, generated in 2023 from Google's own PKI list. It has no +Amazon, Starfield Services or ISRG roots, so a relay-only connection to a TURN +server fronted by AWS ACM or Let's Encrypt times out with `unknown_ca` even +though the host OS trusts the chain. + +This build picks up webrtc-sdk/webrtc#277, which falls back to the operating +system's trust store when the built-in anchors yield no path. It sits in +`rtc_base` below every SDK, so the C++ API that webrtc-sys binds is covered +without any Rust-side change. + ## 0.3.18 (2026-05-21) ### Fixes diff --git a/webrtc-sys/build/Cargo.toml b/webrtc-sys/build/Cargo.toml index 0e09bd0ce..4e985b526 100644 --- a/webrtc-sys/build/Cargo.toml +++ b/webrtc-sys/build/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "webrtc-sys-build" -version = "0.3.18" +version = "0.3.19" edition.workspace = true license.workspace = true description = "Build utilities when working with libwebrtc" diff --git a/yuv-sys/CHANGELOG.md b/yuv-sys/CHANGELOG.md index 922ec8faf..8cb574876 100644 --- a/yuv-sys/CHANGELOG.md +++ b/yuv-sys/CHANGELOG.md @@ -55,6 +55,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - fix yuv simd errors +## 0.3.15 (2026-08-25) + +### Fixes + +- yuv-sys: fail with an actionable error when the libyuv submodule is not initialized + ## 0.3.14 (2026-04-02) ### Fixes diff --git a/yuv-sys/Cargo.toml b/yuv-sys/Cargo.toml index df7c83cc2..d6f6166ba 100644 --- a/yuv-sys/Cargo.toml +++ b/yuv-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "yuv-sys" -version = "0.3.14" +version = "0.3.15" edition.workspace = true authors = ["Theo Monnom "] license = "MIT OR Apache-2.0"