Skip to content

Commit

Permalink
Use livekit's Rust SDK instead of their swift SDK (#13343)
Browse files Browse the repository at this point in the history
See livekit/rust-sdks#355

Todo:

* [x] make `call` / `live_kit_client` crates use the livekit rust sdk
* [x] create a fake version of livekit rust API for integration tests
* [x] capture local audio
* [x] play remote audio
* [x] capture local video tracks
* [x] play remote video tracks
* [x] tests passing
* bugs
* [x] deafening does not work
(livekit/rust-sdks#359)
* [x] mute and speaking status are not replicated properly:
(livekit/rust-sdks#358)
* [x] **linux** - crash due to symbol conflict between WebRTC's
BoringSSL and libcurl's openssl
(livekit/rust-sdks#89)
* [x] **linux** - libwebrtc-sys adds undesired dependencies on `libGL`
and `libXext`
* [x] **windows** - linker error, maybe related to the C++ stdlib
(livekit/rust-sdks#364)
        ```
libwebrtc_sys-54978c6ad5066a35.rlib(video_frame.obj) : error LNK2038:
mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't
match value 'MD_DynamicRelease' in
libtree_sitter_yaml-df6b0adf8f009e8f.rlib(2e40c9e35e9506f4-scanner.o)
        ```
    * [x] audio problems

Release Notes:

- Switch from Swift to Rust LiveKit SDK 🦀

---------

Co-authored-by: Mikayla Maki <[email protected]>
Co-authored-by: Conrad Irwin <[email protected]>
Co-authored-by: Kirill Bulatov <[email protected]>
Co-authored-by: Michael Sloan <[email protected]>
  • Loading branch information
5 people authored Nov 15, 2024
1 parent 6ff69fa commit 1235d08
Show file tree
Hide file tree
Showing 48 changed files with 3,181 additions and 2,774 deletions.
6 changes: 6 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ rustflags = ["-C", "link-arg=-fuse-ld=mold"]
linker = "clang"
rustflags = ["-C", "link-arg=-fuse-ld=mold"]

[target.aarch64-apple-darwin]
rustflags = ["-C", "link-args=-Objc -all_load"]

[target.x86_64-apple-darwin]
rustflags = ["-C", "link-args=-Objc -all_load"]

# This cfg will reduce the size of `windows::core::Error` from 16 bytes to 4 bytes
[target.'cfg(target_os = "windows")']
rustflags = ["--cfg", "windows_slim_errors"]
Loading

0 comments on commit 1235d08

Please sign in to comment.