netspeed-cli 0.7.0

Command-line interface for testing internet bandwidth using speedtest.net
Documentation
[package]
name = "netspeed-cli"
version = "0.7.0"
edition = "2024"
description = "Command-line interface for testing internet bandwidth using speedtest.net"
license = "MIT"
authors = ["Alexey Ivanov <alexey.ivanov.js@gmail.com>"]
repository = "https://github.com/mapleDevJS/netspeed-cli"
homepage = "https://github.com/mapleDevJS/netspeed-cli"
documentation = "https://docs.rs/netspeed-cli"
readme = "README.md"
keywords = ["speedtest", "bandwidth", "network", "internet", "cli"]
categories = ["command-line-utilities", "network-programming"]
rust-version = "1.86"

[[bin]]
name = "netspeed-cli"
path = "src/main.rs"

[lib]
name = "netspeed_cli"
path = "src/lib.rs"

[dependencies]
clap = { version = "4", features = ["derive"] }
clap_complete = "4"
clap_mangen = "0.3"
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "gzip", "stream"] }
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
quick-xml = { version = "0.39", features = ["serialize"] }
chrono = { version = "0.4", features = ["serde"] }
csv = "1"
indicatif = "0.18"
owo-colors = "4"
futures-util = "0.3.31"
directories = "6.0.0"
toml = "1.1.2"
thiserror = "2"

[build-dependencies]
clap = { version = "4", features = ["derive"] }
clap_complete = "4"
clap_mangen = "0.3"

[dev-dependencies]
tokio = { version = "1", features = ["macros"] }
wiremock = "0.6.5"
serial_test = "3.2"
tempfile = "3.19"
criterion = { version = "0.8", features = ["html_reports", "async_tokio"] }
thiserror = "2"

[[bench]]
name = "core_benchmarks"
harness = false

[profile.release]
# Enable Link Time Optimization for better performance and smaller binaries
lto = "thin"
# Strip debug symbols to reduce binary size
strip = true
# Use single codegen unit for better optimization
codegen-units = 1
# Optimize for speed (network-bound workload)
opt-level = 3

[package.metadata.docs.rs]
# Build only the library documentation, not the binary
no-default-features = false
# Use the default docs.rs target
default-target = "x86_64-unknown-linux-gnu"