Expand description
Pure Rust library for reading Blizzard CASC (Content Addressable Storage Container) archives.
CASC is the file storage format used by World of Warcraft (and other Blizzard titles) to bundle game data on disk. This crate provides the building blocks to open a local CASC installation, resolve file identifiers, and extract raw file content.
§Architecture
The extraction pipeline follows this path:
- Config - parse
.build.info, build config, and CDN config to discover keys and paths. - Storage - open
data.NNNarchives and their.idxindex files. - Encoding - load the encoding file that maps content keys (CKeys) to encoding keys (EKeys).
- Root - load the root file that maps file data IDs (FDIDs) to CKeys.
- BLTE - decode the BLTE container (decompress, decrypt) to get raw file bytes.
§Quick Start
use casc_lib::extract::pipeline::{CascStorage, OpenConfig};
use casc_lib::root::flags::LocaleFlags;
let config = OpenConfig {
install_dir: "E:\\World of Warcraft".into(),
product: None,
keyfile: None,
listfile: None,
output_dir: None,
};
let storage = CascStorage::open(&config)?;
let data = storage.read_by_fdid(136235, LocaleFlags::EN_US)?;Modules§
- blte
- BLTE (Binary Large Table Entry) container decoding, compression, and encryption. BLTE (Binary Large Table Entry) container format decoder.
- config
- CASC configuration file parsers (
.build.info, build config, CDN config). CASC configuration file parsers. - encoding
- Encoding file parser - maps content keys (CKeys) to encoding keys (EKeys). Encoding file parser.
- error
- Error types and the crate-wide
Resultalias. Error types for CASC operations. - extract
- High-level extraction pipeline for opening CASC storage and reading files. High-level CASC extraction pipeline.
- listfile
- Community listfile download and parsing (FDID to filename mapping). Community-maintained listfile for mapping FileDataIDs to file paths.
- root
- Root file parser - maps file data IDs (FDIDs) to content keys (CKeys). Root file handling for CASC storage.
- storage
- Low-level data archive and index file access. Low-level CASC data archive and index file access.
- util
- Shared I/O and hashing utilities. Shared utility functions used across the CASC library.