Skip to main content

Crate casc_lib

Crate casc_lib 

Source
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:

  1. Config - parse .build.info, build config, and CDN config to discover keys and paths.
  2. Storage - open data.NNN archives and their .idx index files.
  3. Encoding - load the encoding file that maps content keys (CKeys) to encoding keys (EKeys).
  4. Root - load the root file that maps file data IDs (FDIDs) to CKeys.
  5. 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 Result alias. 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.