Expand description
§TACT Parser
Parser for various TACT (Torrent-Assisted Content Transfer) file formats used by Blizzard Entertainment’s NGDP (Next Generation Distribution Pipeline).
This crate provides parsers for the file formats used to distribute game data through Blizzard’s CDN. While some community tooling refers to these as “CASC files”, CASC specifically refers to the virtual filesystem used by locally-installed games.
§Features
- WoW Root Parsing: Read World of Warcraft root files to find file IDs and MD5 hashes
- Jenkins3 Hashing: Implementation of the Jenkins3 hash algorithm used by TACT
- Efficient I/O: Buffered I/O operations for parsing large game data files
- Format Support: Both modern (8.2+) and legacy pre-8.2 root file formats
§Quick Start
Parse a WoW root file to find game data files:
use tact_parser::wow_root::{WowRootHeader, LocaleFlags, ContentFlags};
use std::fs::File;
use std::io::BufReader;
// Parse root file header
let mut file = BufReader::new(File::open("path/to/root")?);
let header = WowRootHeader::parse(&mut file)?;
println!("Root file version: {}", header.version);
println!("Total files: {}", header.total_file_count);
§Roadmap
Current implementation status:
- ✅ WoW Root file parsing
- ✅ Jenkins3 hash implementation
- ✅ Encoding file parsing (CKey ↔ EKey mapping)
- ✅ Install manifest parsing (with tag-based filtering)
- ✅ Build/CDN config parsing
- ✅ 40-bit integer support
- ✅ Variable-length integer support
- ⏳ Download manifest parsing (planned)
- ⏳ Size file parsing (planned)
- ⏳ TVFS support (planned)
- ⏳ BLTE file decoding (planned - separate crate)
§See Also
ngdp-client
- CLI tool for NGDP operationstact-client
- TACT protocol client- TACT Format Documentation
Modules§
- config
- Configuration file parser for TACT
- download
- Download manifest parser for TACT
- encoding
- Encoding file parser for TACT
- install
- Install manifest parser for TACT
- jenkins3
- Port of Bob Jenkins’
lookup3.c
to Rust. - size
- Size file parser for TACT
- tvfs
- TVFS (TACT Virtual File System) parser
- utils
- Utility functions for binary operations used in TACT file formats
- wow_
root - Implementation of the WoW TACT Root file format (
TSFM
/MFST
).