[package] name = "chanora_protocol" description = "Chanora protocol adapter — isolates tsclientlib behind a typed boundary. No tsclientlib types may cross out of this crate per SAD-067 / SysDes-011 / SysDes-029." version.workspace = true edition.workspace = true rust-version.workspace = true authors.workspace = true license.workspace = true repository.workspace = true publish.workspace = true [dependencies] thiserror.workspace = true tracing.workspace = true serde.workspace = true chanora_resolver = { path = "../chanora_resolver" } base64 = "0.22" time = "0.3" # tsclientlib is git-only and not on crates.io. The "audio" feature # pulls in `audiopus` only — `sdl2` is a dev-dep used by upstream # examples; the library itself does not link SDL. tsclientlib = { git = "https://github.com/ReSpeak/tsclientlib.git", rev = "04aa2491", default-features = false, features = ["audio"] } # tsproto_packets exposes OutAudio / InAudioBuf / AudioData / # CodecType / Direction. Pinning to the same git rev as tsclientlib # avoids any version-skew confusion. tsproto-packets = { git = "https://github.com/ReSpeak/tsclientlib.git", rev = "04aa2491" } tsproto-types = { git = "https://github.com/ReSpeak/tsclientlib.git", rev = "04aa2491" } ts-bookkeeping = { git = "https://github.com/ReSpeak/tsclientlib.git", rev = "04aa2491" } # Async runtime utilities used by the connection task. tokio = { version = "1", features = ["macros", "rt-multi-thread", "time", "sync"] } futures = "0.3" async-trait = "0.1" [target.'cfg(not(target_os = "android"))'.dependencies] # Desktop/iOS: native TLS maps to the platform TLS backend (Security.framework # on Apple, SChannel on Windows, system OpenSSL on Linux/BSD). reqwest = { version = "0.13", default-features = false, features = ["charset", "http2", "native-tls"] } [target.'cfg(target_os = "android")'.dependencies] # Android cross-builds should not pull OpenSSL. Use rustls here while keeping # native-tls for Apple targets where aws-lc/rustls is problematic for iOS. reqwest = { version = "0.13", default-features = false, features = ["charset", "http2", "rustls"] }