steamroom-client
High-level download orchestration for Steam depots built on top of steamroom.
What's in this crate
- Pipelined downloads -- Concurrent chunk fetching with backpressure, retry, and ordered reassembly
- Delta patching -- Compares old and new manifests to skip unchanged files and remove deleted ones
- File filtering -- Filter downloads by literal paths, regex patterns, or
regex:-prefixed filelist files - CDN server pool -- Automatic rotation across CDN servers with health tracking and rate-limit backoff
- Manifest caching -- Local cache for depot manifests to avoid redundant downloads
- Event stream --
DownloadEventchannel for progress bars, logging, or custom UI
Usage
use ;
use ;
use ;
// Build a download job
let job = builder
.depot_id
.depot_key
.install_dir
.file_filter
.verify
.build
.unwrap;
// Create a CDN fetcher with server pool
let fetcher = new;
// Download (returns stats)
// let stats = job.download(&manifest, std::sync::Arc::new(fetcher)).await?;
License
MIT OR Apache-2.0