# Chanora — top-level Cargo workspace. # # Layout authority: DEC-022 in # docs/governance/product-decision-register.md, which adopts the # README's sketch as canonical: # # apps/chanora_flutter/ — Flutter application (separate toolchain) # core/chanora_core/ — top-level Rust API + orchestration # crates/chanora_protocol/ — tsclientlib isolation # crates/chanora_state/ — snapshot, deltas, reducers # crates/chanora_audio/ — capture, DSP, Opus, jitter, mixer # crates/chanora_storage/ — bookmarks, settings, identity refs # crates/chanora_diagnostics/ — logs, redaction, export # crates/chanora_bridge/ — Flutter/Rust typed DTOs + glue # # The Flutter app is not part of this Cargo workspace; it is owned by # Gradle / Xcode / Flutter tooling under apps/chanora_flutter/. # # Non-promotion reminder (proof-of-concept-plan.md §4): nothing under # poc/ is product code. The crates here are blank scaffolds at this # stage; promotion of PoC code happens crate-by-crate with explicit # audit-trail commits. [workspace] resolver = "2" members = [ "core/chanora_core", "crates/chanora_protocol", "crates/chanora_state", "crates/chanora_audio", "crates/chanora_storage", "crates/chanora_diagnostics", "crates/chanora_bridge", ] # Excludes: the PoC trees stay outside the product workspace so that # `cargo check --workspace` at the root does not pull in PoC builds. exclude = [ "poc/tsclientlib-connect-spike", "poc/secure-storage-spike", "poc/sqlite-storage-spike", "poc/diagnostics-redaction-spike", "poc/audio-capture-playback-spike", "poc/audio-capture-playback-android-spike", "poc/flutter_rust_bridge_hello", "apps/chanora_flutter", ] [workspace.package] version = "0.2.0-beta.1" edition = "2021" rust-version = "1.95" authors = ["The Chanora Project Contributors"] license = "MIT OR Apache-2.0" # DEC-020 repository = "https://github.com/anomalyco/opencode" publish = false # not on crates.io readme = "README.md" # Shared dependency pinnings. Members refer to these via # `package.dependencies..workspace = true` so versions stay aligned. [workspace.dependencies] thiserror = "2" tracing = "0.1" serde = { version = "1", features = ["derive"] }