Skip to content

GamePKG 0.1.14 — Independent storage

Choose a tag to compare

@SirDorksAlot SirDorksAlot released this 16 Oct 16:16

GamePKG now owns its complete storage integration. Start the local browser view with gamepkg web-library; it no longer requires a separately supplied storage package, script or package-source path.

The Rust host retains signed packages, settings, catalogs, ROM selections, native saves and play history in their existing locations. Its atomic metadata snapshot remains rebuildable from native records. The optional browser cache is GamePKG-owned code using the browser's standard IndexedDB API, in a new independent cache namespace. No native data migration or deletion is performed. Authenticated live metadata and icons remain available if browser caching is blocked or fails.

The external script loading route, source-hash allowlist, CLI package option and unrelated project references were removed from current code and documentation. Browser writes wait for transaction commit, failed writes preserve prior data, and metadata/icons remain scoped to a single library.

No native database crate was added: current bounded record storage does not require a database engine. docs/STORAGE.md reviews rusqlite/SQLite and pure-Rust redb for future query or transaction requirements, including the need to verify the supported platform targets before adoption.

Validation: 199 Rust tests, formatting and Clippy; cache persistence/isolation, transactional failure preservation, browser restart, blocked-cache live display, actual gameplay/achievement persistence, keyboard gameplay through the browser cache, native home-folder restart, extracted Linux build/play, Windows cross-build and CLI startup, archive checksums and private-file exclusions.

Direct native game compilation remains Linux-only; Windows retains its explicit Wasm workflow. No ROMs, WADs or signing keys are included.