open-standards/jouledesk/jouledesk-rs/vendor/libwebrtc/Cargo.toml.orig
Transaction Science c8db7f4efa jouledesk-livekit: prove the room binding live — real LiveKit run
Drives all four seams over a real WebRTC room against a live livekit-server:
join under a minted token, gate each turn OUTSIDE the model (served vs refused
for unheld-capability / over-ceiling), meter the model calls, seal one
efficiency/1 that verifies under the steward key. examples/live_room.rs is the
runnable proof (data-plane turns → gate/meter/seal, receipt verified).

Clears two upstream blockers so `--features livekit` builds + runs on macOS:
- vendor/libwebrtc: libwebrtc 0.3.38 omits user_data that webrtc-sys 0.3.36
  requires (broken upstream release pair); patched additively + [patch.crates-io].
- build.rs: emit -ObjC so libwebrtc's ObjC categories force-load, else
  PeerConnectionFactory init crashes on an unrecognized selector.

Default build + tests are unaffected (the feature stays off by default).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-06 04:13:40 -04:00

61 lines
1.7 KiB
TOML

[package]
name = "libwebrtc"
version = "0.3.38"
edition.workspace = true
homepage = "https://livekit.io"
license.workspace = true
description = "Livekit safe bindings to libwebrtc"
repository.workspace = true
[features]
default = []
# On Wayland, libwebrtc uses GDBus to communicate with the XDG Desktop Portal.
# GDBus requires a GLib event loop to be running. Enable this feature if you
# wish to use screensharing, and you do not already have a GLib event loop
# running in your application.
glib-main-loop = [ "dep:glib" ]
[dependencies]
log = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
thiserror = { workspace = true }
[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies]
glib = { version = "0.21.3", optional = true }
[target.'cfg(target_os = "android")'.dependencies]
jni = "0.21"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
webrtc-sys = { workspace = true }
livekit-runtime = { workspace = true }
lazy_static = { workspace = true }
parking_lot = { workspace = true }
tokio = { workspace = true, default-features = false, features = ["sync", "macros"] }
cxx = "1.0"
rtrb = "0.3.3"
[target.'cfg(target_arch = "wasm32")'.dependencies]
wasm-bindgen = "0.2"
js-sys = "0.3"
wasm-bindgen-futures = "0.4"
web-sys = { version = "0.3", features = [
"MessageEvent",
"RtcPeerConnection",
"RtcSignalingState",
"RtcSdpType",
"RtcSessionDescriptionInit",
"RtcPeerConnectionIceEvent",
"RtcIceCandidate",
"RtcDataChannel",
"RtcDataChannelEvent",
"RtcDataChannelState",
"EventTarget",
"WebGlRenderingContext",
"WebGlTexture",
] }
[dev-dependencies]
env_logger = { workspace = true }