[package] name = "jouledesk-livekit" version.workspace = true edition.workspace = true license.workspace = true repository.workspace = true description = "Joule Desk โ€” the LiveKit `room` binding (jouledesk/1 ยง8.1): a transport-agnostic RoomAgent that drives a RealtimeSession over a live room's turn/shutdown lifecycle (the four seams), with an optional adapter onto the LiveKit Rust SDK." [lib] name = "jouledesk_livekit" path = "src/lib.rs" [dependencies] jouledesk = { path = "../jouledesk" } # The real LiveKit Rust SDK is optional (heavy: pulls libwebrtc) and gated behind the # `livekit` feature, so the tested core builds without it. # Held at 0.7 (and livekit-api at 0.5): the workspace's vendored libwebrtc patch is the # workaround for 0.7's release skew, and 0.10's build of the feature was not verified here. livekit = { version = "0.7", optional = true } # Access-token minting for the live example (the join grant); same crate the SDK uses. livekit-api = { version = "0.5", optional = true } tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time"], optional = true } [features] default = [] # Compile the real LiveKit adapter (requires libwebrtc + a running LiveKit server to run). livekit = ["dep:livekit", "dep:livekit-api", "dep:tokio"] [dev-dependencies] # Verify the sealed session receipt in the core tests + the live example. jcp-efficiency = { path = "../../../../jcp/jcp-rs/crates/jcp-efficiency" } # A real end-to-end run against a live LiveKit server (join โ†’ gate/meter turns over the # room's data plane โ†’ seal one efficiency/1). Needs `--features livekit` + a running server. [[example]] name = "live_room" required-features = ["livekit"]