2 unstable releases

Uses new Rust 2024

0.2.0 Jul 6, 2025
0.1.0 Jul 6, 2025

#577 in Cryptography

MIT license

41KB
488 lines

rzfile
Rust Library for client file handling

rzfile

CI codecov crates.io docs.rs

rzfile is a lightweight Rust library designed for parsing and handling binary file structures used in proprietary MMO game clients. It's part of the NGemity project and supports tools such as the RZEmulator.

Features

  • Parser for data.00x index files
  • File name encryption and decryption based on game-specific logic
  • Customizable encryption and reference tables
  • Precise error handling via RZError (compatible with thiserror)
  • Fully tested with high code coverage
  • Minimal dependencies (only thiserror optionally)

Example

use rzfile::file::parse_index;
use rzfile::name::{encode_file_name, decode_file_name};

let mut buffer = std::fs::read("data.000").unwrap();
let entries = parse_index(&mut buffer, None).unwrap();

let encoded = encode_file_name("test.dds", None, None).unwrap();
let decoded = decode_file_name(&encoded, None, None, true).unwrap();

assert_eq!(decoded, "test.dds");

Installation

cargo add rzfile

Or manually via Cargo.toml:

[dependencies]
rzfile = "0.1"

Documentation

License

MIT © NGemity

Dependencies

~205–630KB
~15K SLoC