netspeed_cli/lib.rs
1//! # netspeed-cli
2//!
3//! A command-line internet bandwidth tester using speedtest.net servers.
4//!
5//! ## Overview
6//!
7//! This crate provides both a library and a binary (`netspeed-cli`) for
8//! measuring download speed, upload speed, latency, jitter, and latency
9//! under load. It connects to speedtest.net's server infrastructure to
10//! perform real-world bandwidth tests.
11//!
12//! ## Modules
13//!
14//! - [`cli`] — Command-line argument parsing with clap
15//! - [`common`] — Shared utilities (bandwidth calculation, formatting, validation)
16//! - [`config`] — Configuration merging (CLI args + config file)
17//! - [`download`] — Multi-stream download bandwidth measurement
18//! - [`upload`] — Multi-stream upload bandwidth measurement
19//! - [`error`] — Unified error types
20//! - [`formatter`] — Output formatting (detailed, simple, JSON, CSV)
21//! - [`history`] — Persistent test result history
22//! - [`http`] — HTTP client creation and IP discovery
23//! - [`progress`] — Terminal progress bars and spinners
24//! - [`servers`] — Server discovery, distance calculation, and selection
25//! - [`test_runner`] — Test orchestration with template method pattern
26//! - [`types`] — Shared data structures (Server, TestResult, etc.)
27
28pub mod bandwidth_loop;
29pub mod cli;
30pub mod common;
31pub mod config;
32pub mod download;
33pub mod error;
34pub mod formatter;
35pub mod history;
36pub mod http;
37pub mod orchestrator;
38pub mod progress;
39pub mod servers;
40pub mod test_runner;
41pub mod types;
42pub mod upload;