RustyRoms is a high-performance, cross-platform Rust port of the popular RomVault ROM management utility.
It provides an extremely fast engine for scanning, verifying, and organizing massive collections of emulation files using industry-standard DAT files (Logiqx XML, ClrMamePro, RomCenter). By leveraging Rust's memory safety and zero-copy abstractions, RustyRoms aims to significantly accelerate the ROM auditing pipeline while remaining structurally compatible with the upstream RomVault behavior and file formats.
- Extreme Performance: DAT files are parsed in parallel using zero-copy DOM abstractions (
roxmltree). Physical file scanning is deeply optimized. - Cross-Platform: Unlike the original Windows-only
WinFormsapplication, RustyRoms runs natively on Windows, Linux, and macOS. - Decoupled Architecture: The core engine (
rv_core) is completely decoupled from the UI, allowing it to be run as a standard desktop application or a headless CLI server. - Immediate Mode GUI: The desktop interface is built on
egui, capable of rendering hundreds of thousands of tree nodes at 60 FPS. - TorrentZip Support: Built-in verification for the deterministic
TorrentZiparchive format.
The project is organized as a Cargo workspace containing multiple specialized crates:
crates/rv_core: The primary ROM management engine. Handles the internal database (RvFiletree), physical disk scanning, fixing logic, and binary cache serialization.crates/dat_reader: High-speed parsers for various DAT formats (XML, CMP, RomCenter, MESS).crates/compress: UnifiedICompresstrait and wrapper implementations for interacting with raw files,.zip,.7z, and.gzarchives.crates/file_header_reader: Emulator-specific file header detection (NES, SNES, FDS, LYNX, etc.).crates/rv_io: Cross-platform file I/O abstractions masking differences between standard Ruststd::fsand legacy Windows long-path behaviors.
crates/romvault_ui: The primary graphical user interface built withegui.crates/rom_vault: A headless command-line interface (CLI) wrapper for the core engine.crates/trrntzip: The core engine for verifying and rebuildingTorrentZiparchives.crates/trrntzip_cmd: A CLI tool for executing TorrentZip operations.crates/dir2dat: A CLI tool that converts an existing physical directory into a Logiqx XML DAT file.
- Rust toolchain (Cargo)
- Standard build tools for your OS (e.g., MSVC on Windows,
build-essentialon Linux)
To run the primary Graphical User Interface:
cargo run -p romvault_ui --releaseTo run the headless CLI engine:
cargo run -p rom_vault --releaseTo run the standalone TorrentZip CLI tool:
cargo run -p trrntzip_cmd --release -- <path_to_zip>The codebase is documented using rustdoc.
To generate and view the local documentation:
cargo doc --no-deps --document-private-items --openParity notes and missing features are tracked as TODO: items in the codebase.
RustyRoms is actively under development. Currently, it acts as an extremely fast DAT parser and file scanner. Full parity with the upstream TorrentZip rebuild behavior is still being implemented.
Currently no licensing.