A high-performance Rust library and CLI tool for parsing and converting League of Legends binary property files (.bin format).
- π Multiple Formats: Binary (.bin), Text (.py), and JSON
- π Hash Support: FNV1a and XXH64 hash loading and unhashing
- π― Drag & Drop: Just drag .bin files onto the executable
- π οΈ CLI Tools: Info, validate, and conversion commands
- οΏ½ Well Documented: Full rustdoc with examples
cd ritobin_rust
cargo build --releaseThe executable will be at ritobin_rust/target/release/ritobin_rust.exe
Simply drag any .bin file onto the executable and it will automatically convert to .py text format in the same directory.
# Convert formats
ritobin_rust input.bin output.py
ritobin_rust input.py output.json
# Convert with custom hash directory
ritobin_rust -d "path/to/hashes" input.bin
# Show file information
ritobin_rust info file.bin
# Validate files
ritobin_rust validate --recursive directory/use ritobin_rust::binary::read_bin;
use std::fs;
// Read a binary file
let data = fs::read("champion.bin")?;
let bin = read_bin(&data)?;
// Convert to text format
let text = ritobin_rust::text::write_text(&bin)?;
fs::write("champion.py", text)?;The ritobin_rust/examples/ directory contains:
read_bin.rs- Basic bin file readingwrite_bin.rs- Creating bin files from scratchconvert_formats.rs- Format conversionunhashing.rs- Hash loading and unhashing
Run with: cargo run --example read_bin -- file.bin
Generate and view full documentation:
cd ritobin_rust
cargo doc --openritobin_rust/
βββ src/
β βββ lib.rs - Library entry point
β βββ model.rs - Data structures (Bin, BinValue, BinType)
β βββ binary.rs - Binary format I/O
β βββ text.rs - Text format I/O (nom parser)
β βββ json.rs - JSON format I/O
β βββ hash.rs - FNV1a and XXH64 implementations
β βββ unhash.rs - Hash loading and unhashing
β βββ main.rs - CLI application
βββ examples/ - Usage examples
Inspired by moonshadow565/ritobin - the original implementation that paved the way.
Made with β€οΈ for the League of Legends community.
See LICENSE file for details.