| Crates.io | Memory-Pak |
| lib.rs | Memory-Pak |
| version | 0.1.5 |
| created_at | 2025-11-12 02:58:48.80001+00 |
| updated_at | 2025-11-28 19:32:32.922241+00 |
| description | A cross-platform retro game tracker powered by Rust with egui |
| homepage | https://aspenini.github.io/Memory-Pak |
| repository | https://github.com/Aspenini/Memory-Pak |
| max_upload_size | |
| id | 1928734 |
| size | 12,328,721 |
A cross-platform game collection tracker built with Rust, egui, and eframe. Memory Pak allows you to track which consoles and games you own, have favorited, or want (wishlist).
include_dir!() at runtimeMemory-Pak/
├── Cargo.toml # Project configuration
├── src/
│ ├── main.rs # Main application entry point
│ ├── console_data.rs # Hardcoded console definitions
│ ├── game_data.rs # Embedded game data loading (runtime JSON parsing)
│ ├── persistence.rs # Save/load user state (native & web)
│ └── ui.rs # UI rendering functions
└── database/ # Game JSON files (embedded at compile time)
├── nes.json
├── snes.json
├── n64.json
├── gameboyadvance.json
└── ... (one JSON file per console)
cargo build --release
Binary output: target/release/memory_pak[.exe]
Windows (MSI):
cargo install cargo-wix # One-time install
cargo wix # Build MSI
Output: target/wix/Memory-Pak-0.1.4-x86_64.msi
Requires: WiX Toolset v3.11+
macOS (.app):
cargo install cargo-bundle # One-time install
cargo bundle --release
Output: target/release/bundle/osx/Memory Pak.app
Linux (.deb):
cargo install cargo-deb # One-time install
cargo deb
Output: target/debian/memory_pak_*.deb
cargo install wasm-pack # One-time install
wasm-pack build --target web --out-dir pkg
Desktop/Mobile: Stored in platform-specific user data directories:
%APPDATA%\com\memorypak\memory_pak\state\~/Library/Application Support/com.memorypak.memory_pak/state/~/.local/share/com/memorypak/memory_pak/state/Web: Stored in browser localStorage with keys like memory_pak_state_{console_id}
The export file contains all your console and game states in this format:
{
"version": "1.0",
"export_date": "2024-01-01T00:00:00Z",
"console_states": [
{
"console_id": "nes",
"owned": true,
"favorite": false,
"wishlist": false,
"notes": "My original NES from 1985"
}
],
"consoles": [
{
"console_id": "nes",
"games": [
{
"game_id": "nes-a1b2c3d4e5f6...",
"owned": true,
"favorite": false,
"wishlist": false,
"notes": ""
}
]
}
]
}
Note: Game IDs use the stable ID format ({console_id}-{hash}), ensuring compatibility across database updates.