[package]
name = "toe-beans"
description = "DHCP library, client, and server"
version = "0.9.0"
edition = "2024"
license = "LGPL-2.0-only"
repository = "https://codeberg.org/black-cat/toe-beans"
homepage = "https://black-cat.us/toe-beans/toe-beans.html"
categories = ["network-programming", "parser-implementations", "encoding"]
keywords = ["dhcp", "dhcpv4", "network"]
[dependencies]
log = { version = "0.4" }
rand = { version = "0.9.0", optional = true }
ip_network = { version = "0.4.1", features = ["serde"], optional = true }
env_logger = { version = "0.11.0", default-features = false }
mac_address = { version = "1.1.8", features = ["serde"] }
serde = { version = "1.0.192", features = ["derive"], optional = true }
toml = { version = "0.9", optional = true }
clap = { version = "4.5.8", features = ["derive"], optional = true }
inherface = { version = "0.2.0", optional = true, default-features = false, features = ["ipv4"] }
[dev-dependencies]
criterion = { version = "0.7.0", features = ["cargo_bench_support"] }
rand = { version = "0.9.0" }
[features]
default = ["v4_client", "v4_server", "disable_trace"]
v4_client = ["dep:rand", "dep:clap"]
v4_server = ["dep:ip_network", "dep:serde", "dep:toml", "dep:clap", "dep:inherface"]
disable_log = ["log/max_level_off", "log/release_max_level_off"]
disable_trace = ["log/release_max_level_debug"]
integration = []
benchmark = []
[[bin]]
name = "server"
required-features = ["v4_server"]
[[bin]]
name = "client"
required-features = ["v4_client"]
[[bench]]
name = "encode"
harness = false
required-features = ["disable_log"]
[[bench]]
name = "decode"
harness = false
required-features = ["disable_log"]
[[bench]]
name = "leases"
harness = false
required-features = ["disable_log"]
[lints.rust]
unsafe_code = "forbid"
missing_docs = "warn"
missing_debug_implementations = "warn"
[lints.clippy]
module_inception = "allow"