[workspace] resolver = "2" members = [ "crates/asist-core", "crates/asist-audio", "crates/asist-asr", "crates/asist-llm", "crates/asist-tts", "crates/asist-tools", "crates/asist-app", ] # The submodules are path dependencies, not workspace members: without this # cargo adopts them for being inside the directory, and `cargo test` would end # up running canary-rs's integration tests, which expect a model at their own # default path and fail here. exclude = ["vendor"] [workspace.package] version = "0.1.0" edition = "2021" rust-version = "1.85" license = "MIT" repository = "https://github.com/elvis/asist-p" [workspace.dependencies] asist-core = { path = "crates/asist-core" } asist-audio = { path = "crates/asist-audio" } asist-asr = { path = "crates/asist-asr" } asist-llm = { path = "crates/asist-llm" } asist-tts = { path = "crates/asist-tts" } asist-tools = { path = "crates/asist-tools" } canary-rs = { path = "vendor/canary-rs", default-features = false, features = ["cpu", "ort-defaults"] } # canary-rs asks for "2.0.0-rc.12", which under prerelease semver also admits # rc.13, and there the CoreML module moved behind a feature, so its # unconditional re-exports stop compiling. Pin the version canary-rs really # builds against. ort = "=2.0.0-rc.12" anyhow = "1" base64 = "0.22" cpal = "0.17" crossbeam-channel = "0.5" serde = { version = "1", features = ["derive"] } serde_json = "1" thiserror = "2" toml = "0.8" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] } [profile.release] opt-level = 3 lto = "thin" codegen-units = 1 debug = 1 # keep frame pointers/line info: perf profiling of the audio path needs them # The pipeline is unusable in a debug build (Canary decodes ~10x slower), so the # heavy dependencies are optimised even when the workspace itself is not. [profile.dev.package."*"] opt-level = 3