[workspace] resolver = "2" members = [ "crates/headroom-dsp", "crates/headroom-ipc", "crates/headroom-client", "crates/headroom-core", "crates/headroom-cli", ] [workspace.package] version = "0.1.0" edition = "2021" rust-version = "1.86" license = "GPL-3.0-or-later" homepage = "https://github.com/amaanq/headroom" repository = "https://github.com/amaanq/headroom" authors = ["Headroom contributors"] [workspace.dependencies] # Internal crates headroom-dsp = { path = "crates/headroom-dsp", version = "0.1.0" } headroom-ipc = { path = "crates/headroom-ipc", version = "0.1.0" } headroom-client = { path = "crates/headroom-client", version = "0.1.0" } headroom-core = { path = "crates/headroom-core", version = "0.1.0" } # Serde / JSON / TOML serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" toml = "0.8" # Errors / logging thiserror = "2.0" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] } # CLI clap = { version = "4.5", features = ["derive"] } # TUI (monitor). Pinned to versions whose transitive deps still build # on the project's pinned rustc 1.86 (newer ratatui pulls # `instability` 0.3.12 + `darling` 0.23 which need 1.88+). ratatui = "=0.28.1" crossterm = "=0.28.1" # Concurrency / control plane crossbeam-channel = "0.5" parking_lot = "0.12" signal-hook = "0.3" nix = { version = "0.27", features = ["signal"] } # Realtime audio rtrb = "0.3" basedrop = "0.1" assert_no_alloc = "1.1" # DSP ebur128 = "0.1" fundsp = "0.20" # PipeWire. `v0_3_44` exposes target.object key + related modern APIs. pipewire = { version = "0.8", features = ["v0_3_44"] } libspa = "0.8" libspa-sys = "0.8" # Safe byte<->POD casts for audio buffers. bytemuck = "1.18" # Profile hot-reload notify = "6.1" notify-debouncer-mini = "0.4" # Benchmarking — dev-dep only. criterion = { version = "0.5", default-features = false, features = ["cargo_bench_support"] } # Logging — journald optional tracing-journald = "0.3" [profile.release] opt-level = 3 lto = "thin" codegen-units = 1 debug = "line-tables-only" overflow-checks = false panic = "abort" [profile.dev] opt-level = 1 # audio code is unusable at -O0 debug = true overflow-checks = true [profile.bench] inherits = "release" debug = "full"