rzfile 0.2.0

Library to handle RZ game data parsing and name decoding
Documentation
  • Coverage
  • 100%
    21 out of 21 items documented7 out of 8 items with examples
  • Size
  • Source code size: 46.63 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.64 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 18s Average build duration of successful builds.
  • all releases: 17s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • NGemity/rzfile
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • mexby

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