Romshelf - ROM Collection Manager
A modern macOS ROM organiser with TOSEC/MAME support, archive handling, and emulator integration for retrogaming collections
Romshelf is a ROM organiser for macOS, built with Rust and Tauri. It scans collections, verifies files against DAT catalogues (TOSEC, No-Intro, MAME), and handles archives without extraction — designed for collectors who care about accurate dumps and organised libraries.
Core Features
- Parallel scanning of ROM directories with real-time progress
- Archive support — ZIP and 7z reading without extraction to disk
- Hash verification — CRC32, SHA1, MD5 against DAT files
- 100+ formats — Cartridge, disc, and computer system detection
- DAT file support — XML parsing for TOSEC, MAME, No-Intro catalogues
- Duplicate detection and set completion tracking
Technical Approach
The Rust backend handles the performance-critical work: Rayon for parallel hash calculation across CPU cores, Tokio for async file I/O (essential over network storage), and archive streaming that reads contents in memory without writing temporary files. The result is 130+ files per second over NAS storage.
The Svelte 5 frontend receives real-time progress updates via Tauri events. SQLite persists ROM metadata between sessions.
Current Status
Scanning, hashing, and format detection are working. Archive support (ZIP/7z) and DAT file parsing are in progress. Next up: the organize command that verifies files against DAT catalogues and moves them into the correct directory structure, then emulator integration.
The blog post about building Romshelf covers the domain knowledge — why DAT versioning matters, what TorrentZip is for, and how TOSEC naming conventions work.