[package] name = "btest-rs" version = "0.6.3" edition = "2021" description = "MikroTik Bandwidth Test (btest) server and client with EC-SRP5 auth — a Rust reimplementation" license = "MIT AND Apache-2.0" repository = "https://github.com/samm-git/btest-opensource" keywords = ["mikrotik", "bandwidth", "btest", "network", "benchmarking"] categories = ["command-line-utilities", "network-programming"] [lib] name = "btest_rs" path = "src/lib.rs" [[bin]] name = "btest" path = "src/main.rs" [[bin]] name = "btest-client" path = "src/bin/client_only.rs" [[bin]] name = "btest-server" path = "src/bin/server_only.rs" [[bin]] name = "btest-server-pro" path = "src/server_pro/main.rs" required-features = ["pro"] [features] default = [] pro = ["dep:rusqlite", "dep:ldap3", "dep:axum", "dep:tower-http", "dep:serde", "dep:serde_json", "dep:askama"] [dependencies] tokio = { version = "1", features = ["full"] } clap = { version = "4", features = ["derive"] } md-5 = "0.10" bytes = "1" thiserror = "2" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } rand = "0.8" socket2 = "0.5" anyhow = "1.0.102" num-bigint = "0.4.6" num-traits = "0.2.19" num-integer = "0.1.46" sha2 = "0.11.0" hostname = "0.4.2" chrono = "0.4" memchr = "2" rusqlite = { version = "0.39.0", features = ["bundled"], optional = true } ldap3 = { version = "0.12.1", optional = true } axum = { version = "0.8.8", features = ["tokio"], optional = true } tower-http = { version = "0.6.8", features = ["fs", "cors"], optional = true } serde = { version = "1.0.228", features = ["derive"], optional = true } serde_json = { version = "1.0.149", optional = true } askama = { version = "0.15.6", optional = true } [profile.release] opt-level = 3 lto = true strip = true codegen-units = 1 # Minimal size profile for embedded/OpenWrt targets [profile.release-small] inherits = "release" opt-level = "z" panic = "abort" # --- Benchmarks --- [dev-dependencies] criterion = { version = "0.5", features = ["html_reports"] } pprof = { version = "0.14", features = ["criterion", "flamegraph"] } [[bench]] name = "protocol" harness = false [[bench]] name = "bandwidth" harness = false [[bench]] name = "tcp_rx_scan" harness = false [[bench]] name = "ecsrp5" harness = false