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]>
61 lines
1.7 KiB
TOML
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 }
|