Introduce the UciSource abstraction as a config-rs Source that reads UCI packages and maps them into the configuration tree. Supports package selection, required/optional behavior, and custom config/save directories. Move rust-uci dependency to cfg(unix) to enable UCI support on all Unix systems for development and testing, while Linux/OpenWrt remains the production-supported platform.
47 lines
1.2 KiB
TOML
47 lines
1.2 KiB
TOML
[package]
|
|
name = "sqm-autorate-rust"
|
|
version = "0.4.1"
|
|
edition = "2024"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[profile.dev]
|
|
codegen-units = 1
|
|
lto = true
|
|
opt-level = 's'
|
|
|
|
[profile.release]
|
|
codegen-units = 1
|
|
lto = true
|
|
opt-level = 'z'
|
|
panic = "abort"
|
|
strip = "symbols"
|
|
|
|
|
|
[dependencies]
|
|
anyhow = "1.0"
|
|
icmp-socket2 = "0.6.0"
|
|
fastrand = "2"
|
|
rustix = { version = "1.1", features = ["fs", "system", "thread", "time"] }
|
|
thiserror = "2.0"
|
|
libc = "0.2"
|
|
flume = { version = "0.12.0", default-features = false, features = ["eventual-fairness", "select"] }
|
|
config = { version = "0.15.25", default-features = false }
|
|
serde = { version = "1", features = ["derive"] }
|
|
|
|
[dependencies.log]
|
|
features = ["std"]
|
|
version = "0.4"
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
netlink-bindings = { version = "0.3.3", features = ["rt-link", "tc"] }
|
|
netlink-socket2 = { version = "0.3.3" }
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
rust-uci = { git = "https://github.com/namib-project/rust-uci.git", rev = "3e7b6153b6df92b45428c32bb6461756563deecb", optional = true }
|
|
|
|
[features]
|
|
default = ["toml"]
|
|
toml = ["config/toml"]
|
|
uci = ["dep:rust-uci"]
|