atagen

headroom

public
Star0
Watch0
b449da897c0f60535a8e41ffe85840dfb5020c58
1
ssh://brewery@pls.lobotomise.me:33/atagen/headroom.git
Cargo.tomlToml95 lines2.4 KB
1
[workspace]
2
resolver = "2"
3
members = [
4
    "crates/headroom-dsp",
5
    "crates/headroom-ipc",
6
    "crates/headroom-client",
7
    "crates/headroom-core",
8
    "crates/headroom-cli",
9
    "crates/headroom-gui",
10
    "crates/pipewire-filter",
11
]
12
13
[workspace.package]
14
version = "0.1.0"
15
edition = "2021"
16
license = "EUPL-1.2"
17
homepage = "https://github.com/manic-systems/headroom"
18
repository = "https://github.com/manic-systems/headroom"
19
authors = ["Headroom contributors"]
20
21
[workspace.dependencies]
22
# internal crates
23
headroom-dsp     = { path = "crates/headroom-dsp",    version = "0.1.0" }
24
headroom-ipc     = { path = "crates/headroom-ipc",    version = "0.1.0" }
25
headroom-client  = { path = "crates/headroom-client", version = "0.1.0" }
26
headroom-core    = { path = "crates/headroom-core",   version = "0.1.0" }
27
pipewire-filter  = { path = "crates/pipewire-filter", version = "0.1.0" }
28
29
# serde / json / toml
30
serde         = { version = "1.0", features = ["derive"] }
31
serde_json    = "1.0"
32
toml          = "0.8"
33
34
# errors / logging
35
thiserror     = "2.0"
36
tracing       = "0.1"
37
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
38
39
# cli
40
clap          = { version = "4.5", features = ["derive"] }
41
42
# held at 0.28 — 0.29 has block/style api churn needing a tui.rs migration. not a toolchain constraint
43
ratatui       = "=0.28.1"
44
crossterm     = "=0.28.1"
45
46
# concurrency / control plane
47
crossbeam-channel = "0.5"
48
parking_lot   = "0.12"
49
signal-hook   = "0.3"
50
nix           = { version = "0.27", features = ["signal"] }
51
52
# realtime audio
53
rtrb          = "0.3"
54
basedrop      = "0.1"
55
assert_no_alloc = "1.1"
56
57
# dsp
58
ebur128       = "0.1"
59
fundsp        = "0.20"
60
61
# v0_3_44 exposes target.object key + modern apis
62
pipewire      = { version = "0.8", features = ["v0_3_44"] }
63
pipewire-sys  = "0.8"
64
libspa        = "0.8"
65
libspa-sys    = "0.8"
66
67
# safe byte<->pod casts for audio buffers
68
bytemuck      = "1.18"
69
70
# profile hot-reload
71
notify        = "6.1"
72
notify-debouncer-mini = "0.4"
73
74
# benchmarking — dev-dep only
75
criterion     = { version = "0.5", default-features = false, features = ["cargo_bench_support"] }
76
77
# journald logging, optional
78
tracing-journald = "0.3"
79
80
[profile.release]
81
opt-level = 3
82
lto = "thin"
83
codegen-units = 1
84
debug = "line-tables-only"
85
overflow-checks = false
86
panic = "abort"
87
88
[profile.dev]
89
opt-level = 1            # audio code unusable at -O0
90
debug = true
91
overflow-checks = true
92
93
[profile.bench]
94
inherits = "release"
95
debug = "full"