casc-lib
Pure Rust library for reading World of Warcraft CASC (Content Addressable Storage Container) archives.
This crate implements the full CASC extraction pipeline - from parsing .build.info and index files through BLTE decoding and TACT decryption - with no external CASC library dependencies.
Features
- BLTE container decoding (N/Z/4 compression modes)
- TACT encryption support (Salsa20 + ARC4)
- LZ4 sub-block decompression
- Encoding and root file parsing (Legacy, MFST V1, MFST V2)
- Parallel extraction with rayon
- JSONL/CSV metadata index generation
- Community listfile integration (FDID-to-path mapping)
- Supports retail, classic, and anniversary WoW installations
Usage
Add to your Cargo.toml:
Open storage and read a file by FileDataID
use ;
use LocaleFlags;
let config = OpenConfig ;
let storage = open?;
let data = storage.read_by_fdid?;
println!;
Iterate root entries
use LocaleFlags;
for in storage.root.iter_all
List files with glob filtering
use list_files;
let files = list_files;
for in &files
Documentation
Full API docs are available on docs.rs.
License
Licensed under the MIT License.