Switch fully to Rust Livekit (redux) (#27126)

Swift bindings BEGONE

Release Notes:

- Switched from using the Swift LiveKit bindings, to the Rust bindings,
fixing https://github.com/zed-industries/zed/issues/9396, a crash when
leaving a collaboration session, and making Zed easier to build.

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Michael Sloan <michael@zed.dev>
This commit is contained in:
Mikayla Maki
2025-03-28 17:58:23 +00:00
committed by GitHub
co-authored by Conrad Irwin Michael Sloan
parent c8fb95cd1b
commit 8a307e7b89
68 changed files with 2393 additions and 7579 deletions
Generated
+181 -101
View File
@@ -1881,7 +1881,7 @@ dependencies = [
"bitflags 2.9.0",
"cexpr",
"clang-sys",
"itertools 0.10.5",
"itertools 0.12.1",
"lazy_static",
"lazycell",
"log",
@@ -1904,7 +1904,7 @@ dependencies = [
"bitflags 2.9.0",
"cexpr",
"clang-sys",
"itertools 0.10.5",
"itertools 0.12.1",
"log",
"prettyplease",
"proc-macro2",
@@ -1993,7 +1993,7 @@ dependencies = [
"ash-window",
"bitflags 2.9.0",
"bytemuck",
"codespan-reporting",
"codespan-reporting 0.11.1",
"glow",
"gpu-alloc",
"gpu-alloc-ash",
@@ -2279,12 +2279,11 @@ dependencies = [
[[package]]
name = "bzip2-sys"
version = "0.1.11+1.0.8"
version = "0.1.13+1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14"
dependencies = [
"cc",
"libc",
"pkg-config",
]
@@ -2299,10 +2298,10 @@ dependencies = [
"fs",
"futures 0.3.31",
"gpui",
"gpui_tokio",
"http_client",
"language",
"livekit_client",
"livekit_client_macos",
"log",
"postage",
"project",
@@ -2438,8 +2437,7 @@ dependencies = [
[[package]]
name = "cargo_metadata"
version = "0.19.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba"
source = "git+https://github.com/zed-industries/cargo_metadata?rev=ce8171bad673923d61a77b6761d0dc4aff63398a#ce8171bad673923d61a77b6761d0dc4aff63398a"
dependencies = [
"camino",
"cargo-platform",
@@ -2565,6 +2563,15 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
[[package]]
name = "cgl"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff"
dependencies = [
"libc",
]
[[package]]
name = "channel"
version = "0.1.0"
@@ -2721,7 +2728,7 @@ dependencies = [
"anyhow",
"clap",
"collections",
"core-foundation 0.9.4",
"core-foundation 0.10.0",
"core-services",
"exec",
"fork",
@@ -2874,6 +2881,17 @@ dependencies = [
"unicode-width",
]
[[package]]
name = "codespan-reporting"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81"
dependencies = [
"serde",
"termcolor",
"unicode-width",
]
[[package]]
name = "collab"
version = "0.44.0"
@@ -2921,6 +2939,7 @@ dependencies = [
"git_ui",
"google_ai",
"gpui",
"gpui_tokio",
"hex",
"http_client",
"hyper 0.14.32",
@@ -2930,7 +2949,6 @@ dependencies = [
"language_model",
"livekit_api",
"livekit_client",
"livekit_client_macos",
"log",
"lsp",
"menu",
@@ -3354,6 +3372,19 @@ dependencies = [
"libc",
]
[[package]]
name = "core-graphics2"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e4583956b9806b69f73fcb23aee05eb3620efc282972f08f6a6db7504f8334d"
dependencies = [
"bitflags 2.9.0",
"block",
"cfg-if",
"core-foundation 0.10.0",
"libc",
]
[[package]]
name = "core-services"
version = "0.2.1"
@@ -3365,16 +3396,30 @@ dependencies = [
[[package]]
name = "core-text"
version = "20.1.0"
version = "21.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5"
checksum = "a593227b66cbd4007b2a050dfdd9e1d1318311409c8d600dc82ba1b15ca9c130"
dependencies = [
"core-foundation 0.9.4",
"core-graphics 0.23.2",
"core-foundation 0.10.0",
"core-graphics 0.24.0",
"foreign-types 0.5.0",
"libc",
]
[[package]]
name = "core-video"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d45e71d5be22206bed53c3c3cb99315fc4c3d31b8963808c6bc4538168c4f8ef"
dependencies = [
"block",
"core-foundation 0.10.0",
"core-graphics2",
"io-surface",
"libc",
"metal",
]
[[package]]
name = "core_maths"
version = "0.1.1"
@@ -3793,9 +3838,9 @@ checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
[[package]]
name = "cxx"
version = "1.0.134"
version = "1.0.151"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5a32d755fe20281b46118ee4b507233311fb7a48a0cfd42f554b93640521a2f"
checksum = "fdb3e596b379180315d2f934231e233a2fc745041f88231807774093d8de45f2"
dependencies = [
"cc",
"cxxbridge-cmd",
@@ -3807,12 +3852,12 @@ dependencies = [
[[package]]
name = "cxx-build"
version = "1.0.134"
version = "1.0.151"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11645536ada5d1c8804312cbffc9ab950f2216154de431de930da47ca6955199"
checksum = "3743fae7f47620cd34ec23bab819db9ee52da93166a058f87ab0ad99d777dc9b"
dependencies = [
"cc",
"codespan-reporting",
"codespan-reporting 0.12.0",
"proc-macro2",
"quote",
"scratch",
@@ -3821,12 +3866,12 @@ dependencies = [
[[package]]
name = "cxxbridge-cmd"
version = "1.0.134"
version = "1.0.151"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ebcc9c78e3c7289665aab921a2b394eaffe8bdb369aa18d81ffc0f534fd49385"
checksum = "aaea0273c049b126a3918df88a1670c9c0168e0738df9370a988ff69070d4fff"
dependencies = [
"clap",
"codespan-reporting",
"codespan-reporting 0.12.0",
"proc-macro2",
"quote",
"syn 2.0.100",
@@ -3834,15 +3879,15 @@ dependencies = [
[[package]]
name = "cxxbridge-flags"
version = "1.0.134"
version = "1.0.151"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a22a87bd9e78d7204d793261470a4c9d585154fddd251828d8aefbb5f74c3bf"
checksum = "020a9a3d6b792aab7f30f6e323893ad7f45052e572cde5d014c47fe67c89495f"
[[package]]
name = "cxxbridge-macro"
version = "1.0.134"
version = "1.0.151"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1dfdb020ff8787c5daf6e0dca743005cc8782868faeadfbabb8824ede5cb1c72"
checksum = "ee54cd01f94db0328c4c73036d38bd8c3bb88927e953d05ffefe743edbf4eb68"
dependencies = [
"proc-macro2",
"quote",
@@ -5073,12 +5118,12 @@ checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2"
[[package]]
name = "font-kit"
version = "0.14.1"
source = "git+https://github.com/zed-industries/font-kit?rev=40391b7#40391b7c0041d8a8572af2afa3de32ae088f0120"
source = "git+https://github.com/zed-industries/font-kit?rev=5474cfad4b719a72ec8ed2cb7327b2b01fd10568#5474cfad4b719a72ec8ed2cb7327b2b01fd10568"
dependencies = [
"bitflags 2.9.0",
"byteorder",
"core-foundation 0.9.4",
"core-graphics 0.23.2",
"core-foundation 0.10.0",
"core-graphics 0.24.0",
"core-text",
"dirs 5.0.1",
"dwrote",
@@ -5276,7 +5321,7 @@ name = "fsevent"
version = "0.1.0"
dependencies = [
"bitflags 2.9.0",
"core-foundation 0.9.4",
"core-foundation 0.10.0",
"fsevent-sys 3.1.0",
"parking_lot",
"tempfile",
@@ -5813,10 +5858,11 @@ dependencies = [
"cbindgen 0.28.0",
"cocoa 0.26.0",
"collections",
"core-foundation 0.9.4",
"core-foundation 0.10.0",
"core-foundation-sys",
"core-graphics 0.23.2",
"core-graphics 0.24.0",
"core-text",
"core-video",
"cosmic-text",
"ctor",
"derive_more",
@@ -6918,6 +6964,19 @@ version = "2.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06432fb54d3be7964ecd3649233cddf80db2832f47fec34c01f65b3d9d774983"
[[package]]
name = "io-surface"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8283575d5f0b2e7447ec0840363879d71c0fa325d4c699d5b45208ea4a51f45e"
dependencies = [
"cgl",
"core-foundation 0.10.0",
"core-foundation-sys",
"leaky-cow",
"libc",
]
[[package]]
name = "iovec"
version = "0.1.4"
@@ -7498,6 +7557,21 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]]
name = "leak"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd100e01f1154f2908dfa7d02219aeab25d0b9c7fa955164192e3245255a0c73"
[[package]]
name = "leaky-cow"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40a8225d44241fd324a8af2806ba635fc7c8a7e9a7de4d5cf3ef54e71f5926fc"
dependencies = [
"leak",
]
[[package]]
name = "leb128"
version = "0.2.5"
@@ -7598,8 +7672,8 @@ dependencies = [
[[package]]
name = "libwebrtc"
version = "0.3.7"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=811ceae29fabee455f110c56cd66b3f49a7e5003#811ceae29fabee455f110c56cd66b3f49a7e5003"
version = "0.3.10"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8#102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8"
dependencies = [
"cxx",
"jni",
@@ -7633,9 +7707,9 @@ dependencies = [
[[package]]
name = "link-cplusplus"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9"
checksum = "4a6f6da007f968f9def0d65a05b187e2960183de70c160204ecfccf0ee330212"
dependencies = [
"cc",
]
@@ -7683,12 +7757,13 @@ checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104"
[[package]]
name = "livekit"
version = "0.7.0"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=811ceae29fabee455f110c56cd66b3f49a7e5003#811ceae29fabee455f110c56cd66b3f49a7e5003"
version = "0.7.8"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8#102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8"
dependencies = [
"chrono",
"futures-util",
"lazy_static",
"libloading",
"libwebrtc",
"livekit-api",
"livekit-protocol",
@@ -7705,10 +7780,10 @@ dependencies = [
[[package]]
name = "livekit-api"
version = "0.4.1"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=811ceae29fabee455f110c56cd66b3f49a7e5003#811ceae29fabee455f110c56cd66b3f49a7e5003"
version = "0.4.2"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8#102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8"
dependencies = [
"async-tungstenite",
"base64 0.21.7",
"futures-util",
"http 0.2.12",
"jsonwebtoken",
@@ -7716,7 +7791,9 @@ dependencies = [
"livekit-runtime",
"log",
"parking_lot",
"pbjson-types",
"prost 0.12.6",
"rand 0.9.0",
"reqwest 0.11.27",
"scopeguard",
"serde",
@@ -7724,14 +7801,14 @@ dependencies = [
"sha2",
"thiserror 1.0.69",
"tokio",
"tokio-tungstenite 0.20.1",
"tokio-tungstenite 0.26.2",
"url",
]
[[package]]
name = "livekit-protocol"
version = "0.3.6"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=811ceae29fabee455f110c56cd66b3f49a7e5003#811ceae29fabee455f110c56cd66b3f49a7e5003"
version = "0.3.9"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8#102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8"
dependencies = [
"futures-util",
"livekit-runtime",
@@ -7747,13 +7824,11 @@ dependencies = [
[[package]]
name = "livekit-runtime"
version = "0.3.1"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=811ceae29fabee455f110c56cd66b3f49a7e5003#811ceae29fabee455f110c56cd66b3f49a7e5003"
version = "0.4.0"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8#102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8"
dependencies = [
"async-io",
"async-std",
"async-task",
"futures 0.3.31",
"tokio",
"tokio-stream",
]
[[package]]
@@ -7778,19 +7853,21 @@ dependencies = [
"anyhow",
"async-trait",
"collections",
"core-foundation 0.9.4",
"core-foundation 0.10.0",
"core-video",
"coreaudio-rs 0.12.1",
"cpal",
"futures 0.3.31",
"gpui",
"http 0.2.12",
"http_client",
"gpui_tokio",
"http_client_tls",
"image",
"libwebrtc",
"livekit",
"livekit_api",
"log",
"media",
"nanoid",
"objc",
"parking_lot",
"postage",
"serde",
@@ -7798,32 +7875,10 @@ dependencies = [
"sha2",
"simplelog",
"smallvec",
"tokio-tungstenite 0.26.2",
"util",
]
[[package]]
name = "livekit_client_macos"
version = "0.1.0"
dependencies = [
"anyhow",
"async-broadcast",
"async-trait",
"collections",
"core-foundation 0.9.4",
"futures 0.3.31",
"gpui",
"livekit_api",
"log",
"media",
"nanoid",
"parking_lot",
"postage",
"serde",
"serde_json",
"sha2",
"simplelog",
]
[[package]]
name = "lmdb-master-sys"
version = "0.2.4"
@@ -8165,7 +8220,8 @@ version = "0.1.0"
dependencies = [
"anyhow",
"bindgen 0.70.1",
"core-foundation 0.9.4",
"core-foundation 0.10.0",
"core-video",
"ctor",
"foreign-types 0.5.0",
"metal",
@@ -8215,9 +8271,9 @@ dependencies = [
[[package]]
name = "metal"
version = "0.31.0"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f569fb946490b5743ad69813cb19629130ce9374034abe31614a36402d18f99e"
checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21"
dependencies = [
"bitflags 2.9.0",
"block",
@@ -8370,12 +8426,6 @@ version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
[[package]]
name = "multimap"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03"
[[package]]
name = "naga"
version = "23.1.0"
@@ -8386,7 +8436,7 @@ dependencies = [
"bit-set 0.8.0",
"bitflags 2.9.0",
"cfg_aliases 0.1.1",
"codespan-reporting",
"codespan-reporting 0.11.1",
"hexf-parse",
"indexmap",
"log",
@@ -10694,7 +10744,7 @@ dependencies = [
"itertools 0.10.5",
"lazy_static",
"log",
"multimap 0.8.3",
"multimap",
"petgraph",
"prost 0.9.0",
"prost-types 0.9.0",
@@ -10713,7 +10763,7 @@ dependencies = [
"heck 0.4.1",
"itertools 0.10.5",
"log",
"multimap 0.10.0",
"multimap",
"once_cell",
"petgraph",
"prettyplease",
@@ -12132,9 +12182,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "scratch"
version = "1.0.7"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152"
checksum = "9f6280af86e5f559536da57a45ebc84948833b3bee313a7dd25232e09c878a52"
[[package]]
name = "scrypt"
@@ -14093,7 +14143,7 @@ dependencies = [
name = "time_format"
version = "0.1.0"
dependencies = [
"core-foundation 0.9.4",
"core-foundation 0.10.0",
"core-foundation-sys",
"sys-locale",
"time",
@@ -14317,10 +14367,7 @@ checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
dependencies = [
"futures-util",
"log",
"rustls 0.21.12",
"rustls-native-certs 0.6.3",
"tokio",
"tokio-rustls 0.24.1",
"tungstenite 0.20.1",
]
@@ -14336,6 +14383,21 @@ dependencies = [
"tungstenite 0.21.0",
]
[[package]]
name = "tokio-tungstenite"
version = "0.26.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084"
dependencies = [
"futures-util",
"log",
"rustls 0.23.25",
"rustls-pki-types",
"tokio",
"tokio-rustls 0.26.1",
"tungstenite 0.26.2",
]
[[package]]
name = "tokio-util"
version = "0.7.13"
@@ -14840,7 +14902,6 @@ dependencies = [
"httparse",
"log",
"rand 0.8.5",
"rustls 0.21.12",
"sha1",
"thiserror 1.0.69",
"url",
@@ -14884,6 +14945,25 @@ dependencies = [
"utf-8",
]
[[package]]
name = "tungstenite"
version = "0.26.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13"
dependencies = [
"bytes 1.10.1",
"data-encoding",
"http 1.2.0",
"httparse",
"log",
"rand 0.9.0",
"rustls 0.23.25",
"rustls-pki-types",
"sha1",
"thiserror 2.0.12",
"utf-8",
]
[[package]]
name = "typeid"
version = "1.0.2"
@@ -16020,8 +16100,8 @@ dependencies = [
[[package]]
name = "webrtc-sys"
version = "0.3.5"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=811ceae29fabee455f110c56cd66b3f49a7e5003#811ceae29fabee455f110c56cd66b3f49a7e5003"
version = "0.3.7"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8#102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8"
dependencies = [
"cc",
"cxx",
@@ -16033,8 +16113,8 @@ dependencies = [
[[package]]
name = "webrtc-sys-build"
version = "0.3.5"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=811ceae29fabee455f110c56cd66b3f49a7e5003#811ceae29fabee455f110c56cd66b3f49a7e5003"
version = "0.3.6"
source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8#102ebbb1ccfbdbcb7332d86dc30b1b1c8c01e4f8"
dependencies = [
"fs2",
"regex",