Files
btest-rs/Cargo.toml
Siavash Sameni d9007dc169 Initial commit: MikroTik btest server & client in Rust
Full reimplementation of the MikroTik Bandwidth Test protocol:
- Server mode: accepts connections from MikroTik devices on port 2000
- Client mode: connects to MikroTik btest servers
- TCP and UDP protocols with bidirectional support
- MD5 challenge-response authentication
- Dynamic speed adjustment (1.5x algorithm)
- Status exchange matching original C pselect() behavior
- Docker support with multi-stage build

Tested against MikroTik RouterOS achieving:
- 1.05 Gbps server RX (single connection)
- 530 Mbps client TCP download
- 840 Mbps client TCP upload
- 433 Mbps client UDP download

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 11:56:34 +04:00

33 lines
630 B
TOML

[package]
name = "mikrotik-btest"
version = "0.1.0"
edition = "2021"
description = "MikroTik Bandwidth Test (btest) server and client implementation in Rust"
license = "MIT"
[lib]
name = "mikrotik_btest"
path = "src/lib.rs"
[[bin]]
name = "btest"
path = "src/main.rs"
[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"
[profile.release]
opt-level = 3
lto = true
strip = true
codegen-units = 1