Skip to main content

Crate modde_sources

Crate modde_sources 

Source
Expand description

Download-source backends for modde: a uniform traits::DownloadSource contract over Nexus, GitHub, Google Drive, Mega, MediaFire, direct HTTPS, and manual sources, plus the Wabbajack modlist installer and supporting archive, cache, and staging machinery.

Re-exports§

pub use error::SourceError;
pub use error::SourceResult;
pub use traits::AnySource;
pub use traits::DownloadHandle;
pub use traits::DownloadSource;
pub use traits::ProgressCallback;
pub use traits::VerifiedFile;

Modules§

cache
In-memory byte cache for extracted archive entries, keyed by archive hash and inner path, with a configurable byte budget and LRU eviction.
common
Shared download helpers reused across sources: streaming a response body to disk with hash verification, retry/backoff, and parent-directory setup.
decompress
Selective archive extraction: pull a chosen set of entries out of zip, 7z, Bethesda (BSA/BA2), and (optionally) rar archives in one pass, validating sizes and rejecting unsafe entry paths.
direct
Plain HTTPS download source with Range-based resume and HTML mirror resolution.
error
Error and result types for the download-source boundary.
gdrive
Google Drive download source, including handling of the large-file virus scan confirmation page.
github
GitHub Releases download source: resolves release assets and downloads them, honouring GITHUB_TOKEN when present.
installers
Mod-installer format detection and handling (currently BAIN packages).
manager
Synchronous download queue bookkeeping: track download state, enforce a concurrency budget, and surface which queued downloads may start next.
manual
Source for manual-download directives, which cannot be fetched automatically and instead fail fast with a pointer to the upstream URL.
mediafire
MediaFire download source: resolves a file page to its direct URL, then delegates the transfer to the direct-HTTP source.
mega
Mega.nz download source, including client-side AES-128-CTR decryption of the encrypted payload.
meta
.meta sidecar files that record per-download progress and Nexus metadata so paused or interrupted downloads can be resumed.
nexus
Nexus Mods integration: the typed REST/GraphQL client, API-key and OAuth authentication, CDN download links, update checks, and collection installs.
queue
Per-download state machine backed by .meta sidecars, used to resume, pause, and report progress for individual download tasks.
traits
Core download-source contract: the DownloadSource trait, the AnySource enum-dispatch wrapper, and the supporting value types (DownloadHandle, VerifiedFile, ProgressCallback).
wabbajack
Wabbajack modlist support: parsing .wabbajack files, acquiring their archives, and running the installer that materializes a modlist on disk.