[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 once_cell = "1" # 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"] } # Force the reqwest TLS backend to native-tls (Security.framework on # Apple, SChannel on Windows, system OpenSSL on Linux/BSD) instead of # the rustls + aws-lc-rs combination tsclientlib's `default-tls` # feature would otherwise pick. aws-lc-sys does not cross-compile # cleanly to aarch64-apple-ios, and native-tls is the standard # answer for "TLS that just works on every desktop+mobile platform # without a vendored C dependency". Cargo's feature unification means # this single direct dep applies to the transitive # tsclientlib -> reqwest chain too. reqwest = { version = "0.13", default-features = false, features = ["charset", "http2", "native-tls"] } # 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" } # 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"