Removed dependencies: - rand: Replaced with SystemTime-based random for ICMP ID/sequence - ureq: Removed Docker Hub version checking (Watchtower handles updates) - tiny_http: Replaced with raw TCP listener for /health endpoint - anyhow: Replaced with std::error::Error trait Benefits: - Binary size: 2.3M → 1.5M (800KB reduction, 35% smaller!) - Dependencies: 19 → 11 direct dependencies (-8 total) - Tests: 80 → 67 (removed Docker Hub API tests) - All tests passing Custom implementations: - ICMP random: Use nanosecond timestamp for ID/sequence - Health endpoint: Simple HTTP/1.1 parser on raw TCP - Error handling: type Result<T> = std::result::Result<T, Box<dyn Error>> Total progress from initial state: - Binary: 2.4M → 1.5M (37.5% reduction!) - Dependencies removed: 8 (thiserror, hostname, chrono, base64, rand, ureq, tiny_http, anyhow)
26 lines
631 B
TOML
26 lines
631 B
TOML
[package]
|
|
name = "towerops-agent"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[dependencies]
|
|
snmp = "0.2"
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time", "net"] }
|
|
tokio-tungstenite = { version = "0.21", features = ["rustls-tls-webpki-roots"] }
|
|
futures = "0.3"
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
log = { version = "0.4", features = ["std"] }
|
|
clap = { version = "4.0", features = ["derive", "env"] }
|
|
prost = "0.13"
|
|
prost-types = "0.13"
|
|
socket2 = "0.5"
|
|
|
|
[build-dependencies]
|
|
prost-build = "0.13"
|
|
|
|
[profile.release]
|
|
opt-level = "z"
|
|
lto = true
|
|
codegen-units = 1
|
|
strip = true
|