Skip to main content

rget/
lib.rs

1//! `rget` — a resumable, parallel HTTP download manager.
2//!
3//! The crate is split so that each concern can be tested on its own:
4//!
5//! | module | responsibility |
6//! |---|---|
7//! | [`cli`] | argument parsing, command dispatch |
8//! | [`config`] | user settings and the first-run download-folder prompt |
9//! | [`http`] | requests, redirects, metadata probing, range requests |
10//! | [`engine`] | orchestration: probe → plan → transfer → verify |
11//! | [`scheduler`] | range planning, worker assignment, dynamic splitting |
12//! | [`worker`] | one range transfer at a time |
13//! | [`storage`] | SQLite persistence |
14//! | [`file`] | random-access writes, preallocation |
15//! | [`resume`] | recovery, reconciliation, remote validation |
16//! | [`retry`] | retry policy and backoff |
17//! | [`integrity`] | checksums |
18//! | [`progress`] | telemetry model, speed and ETA maths |
19//! | [`ui`] | terminal rendering |
20//! | [`mirror`] | mirror equivalence and source selection |
21//! | [`naming`] | destination filename selection and sanitisation |
22//! | [`limit`] | global bandwidth limiting |
23//!
24//! The one design document worth reading before changing anything:
25//! `docs/CRASH_CONSISTENCY.md`.
26
27pub mod cli;
28pub mod config;
29pub mod engine;
30pub mod error;
31pub mod file;
32pub mod fmt;
33pub mod http;
34pub mod integrity;
35pub mod limit;
36pub mod mirror;
37pub mod naming;
38pub mod progress;
39pub mod resume;
40pub mod retry;
41pub mod scheduler;
42pub mod shutdown;
43pub mod storage;
44pub mod ui;
45pub mod worker;