Linux distribution metadata, download, and verification.
This crate provides:
- Distribution registry with version and URL resolution
- Architecture detection
- HTTP download with progress callbacks and SHA256 verification
- LXC Images (Simplestreams) unified source for all distros
- Mirror selection (official, TUNA, USTC, custom R2)
Example
use distro::{Distro, Version, Arch, download_distro};
# async fn example() -> Result<(), distro::Error> {
let bytes = download_distro(
Distro::Alpine,
&Version::new("3.20"),
Arch::current(),
|downloaded, total| {
eprintln!("{downloaded}/{total} bytes");
},
).await?;
# Ok(())
# }