Crate tact_parser

Source
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

Modules§

config
Configuration file parser for TACT
download
Download manifest parser for TACT
encoding
Encoding file parser for TACT
espec
ESpec (Encoding Specification) parser for BLTE compression
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).

Enums§

Error

Type Aliases§

Result