[package] name = "medea-jason" version = "0.7.0" edition = "2021" rust-version = "1.81" description = "Client library for Medea media server." authors = ["Instrumentisto Team "] license = "MPL-2.0" documentation = "https://docs.rs/medea-jason" homepage = "https://github.com/instrumentisto/medea-jason" repository = "https://github.com/instrumentisto/medea-jason" readme = "README.md" keywords = ["medea", "jason", "webrtc", "client", "browser"] categories = ["multimedia", "api-bindings", "web-programming", "wasm"] include = ["/src/", "/build.rs", "/CHANGELOG.md", "/LICENSE.md"] [workspace] members = [ "crates/medea-macro", "crates/medea-reactive", "mock/control-api", "proto/client-api", "proto/control-api", "e2e", ] [lib] crate-type = ["cdylib", "rlib", "staticlib"] [profile.release] lto = "fat" [features] default = ["console_error_panic_hook", "talc"] console_error_panic_hook = ["dep:console_error_panic_hook"] dart-codegen = ["medea-macro/dart-codegen"] mockable = ["dep:mockall"] talc = ["dep:talc"] [dependencies] async-recursion = "1.1" async-trait = "0.1" backoff = { version = "0.4", features = ["futures"] } bitflags = "2.6" derivative = "2.2" derive_more = { version = "1.0", features = ["as_ref", "debug", "deref", "display", "from", "into", "mul"] } futures = "0.3" log = "0.4" medea-client-api-proto = { version = "0.7", path = "proto/client-api" } medea-macro = { version = "0.3", path = "crates/medea-macro" } medea-reactive = { version = "0.1", path = "crates/medea-reactive" } mockall = { version = "0.13", optional = true } sealed = "0.6" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" tracerr = "0.3" url = "2.5" [target.'cfg(target_os = "android")'.dependencies] android_logger = "0.14" [target.'cfg(any(target_os = "ios", target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies] simple_logger = "5.0" [target.'cfg(not(target_family = "wasm"))'.dependencies] # TODO: Switch to `dart-sys` once `flutter_rust_bridge` does. dart-sys = { version = "4.1", package = "dart-sys-fork" } flutter_rust_bridge = { version = "=2.4.0", features = ["anyhow", "dart-opaque", "rust-async"], default-features = false } libc = "0.2" send_wrapper = "0.6" [target.'cfg(target_family = "wasm")'.dependencies] backoff = { version = "0.4", features = ["wasm-bindgen"] } console_error_panic_hook = { version = "0.1", optional = true } js-sys = "0.3" talc = { version = "4.4", features = ["lock_api"], default-features = false, optional = true } wasm-bindgen = "0.2.93" wasm-bindgen-futures = "0.4.43" wasm-logger = "0.2" [target.'cfg(target_family = "wasm")'.dependencies.web-sys] version = "0.3.70" features = [ "console", "ConstrainBooleanParameters", "ConstrainDomStringParameters", "ConstrainDoubleRange", "CloseEvent", "DisplayMediaStreamConstraints", "Event", "EventTarget", "MediaDevices","MediaDeviceInfo", "MediaDeviceKind", "MediaTrackConstraints", "MediaTrackSettings", "MediaStream", "MediaStreamConstraints", "MediaStreamTrack", "MediaStreamTrackState", "MessageEvent", "Navigator", "RtcBundlePolicy", "RtcConfiguration", "RtcIceCandidate", "RtcIceCandidateInit", "RtcIceConnectionState", "RtcIceServer", "RtcIceTransportPolicy", "RtcOfferOptions", "RtcPeerConnection", "RtcPeerConnectionIceEvent", "RtcPeerConnectionIceErrorEvent", "RtcPeerConnectionState", "RtcRtpCapabilities", "RtcRtpCodecCapability", "RtcRtpCodecParameters", "RtcRtpEncodingParameters", "RtcRtpParameters", "RtcRtpReceiver", "RtcRtpSender", "RtcRtpTransceiver", "RtcRtpTransceiverDirection", "RtcRtpTransceiverInit", "RtcSdpType", "RtcSessionDescription", "RtcSessionDescriptionInit", "RtcStats", "RtcStatsReport", "RtcTrackEvent", "WebSocket", "Window", ] [build-dependencies] cc = "1.1" [target.'cfg(target_family = "wasm")'.dev-dependencies] instant = { version = "0.1", features = ["wasm-bindgen"] } wasm-bindgen-test = "0.3"