Project releases
RuVector browser storage now waits for the save to finish
The npm browser package 0.2.1 fixes no-op persistence: saving waits for an IndexedDB commit and loading returns a database or a visible error.
GitHub activity: · Published:
Save, commit, reload
A completed save now means a committed snapshot—not a promise that browser storage lasts forever.
Explanatory diagram · not live telemetryIn-page vectors
Populated VectorDB
Named snapshot
Vectors + metadata, one versioned record
IndexedDB commit
Save resolves only after commit
Errors stay visible
Abort, quota or invalid payload reject
Reload + rebuild
Load the name; rebuild the index
What changed
RuVector’s browser package now saves a vector database to IndexedDB and can load it in a later session. Version 0.2.0 reported success without writing data and left loading unfinished. In 0.2.1, save resolves only after the transaction commits; load returns a database or a clear error rather than silently leaving an empty one.
The versioned snapshot stores vectors and metadata together; loading rebuilds the search index. Pick a stable database name before saving. The maintainers report a real page-reload round trip and browser regression tests, not a newsroom reproduction. The npm package is @ruvector/wasm 0.2.1; the corresponding Rust crate is ruvector-wasm 2.3.1.
Get started
Use an existing browser application with WASM initialized and a populated VectorDB. This release is browser-local.
Documentation-verified only. We did not install this release, execute these commands or reproduce the maintainers’ tests.
npm install @ruvector/wasm@0.2.1
db.setDbName('my_vector_db');
await db.saveToIndexedDB();
const restored = await VectorDB.loadFromIndexedDB('my_vector_db');
This persistence release documents no MCP endpoint or npx skills setup. A project-specific demo for this fix was not verified.
Use it today
Save a small populated browser database under a stable name. Reload the page, then compare both stored metadata and search results. A thrown exception means the save or load did not succeed.
Experimental commentary — acceptance test
Measure memory and reload time with your own dataset. Acceptance: recreate the page context, load the named snapshot and recover the same vectors and metadata. A JavaScript variable round trip alone does not test page-reload persistence.
Limits and verification
- This sequence is not a standalone app: initialize WASM and create/populate db first using the direct VectorDB API.
- The separately maintained npm/wasm TypeScript wrapper was updated but not published in this release. No broader wrapper helpers are promised.
- The snapshot is one JSON string. Browser quotas and eviction still apply; commit is not perpetual backup or cloud synchronization.
- Maintainers reviewed abort/quota error handling but did not force those failures in tests.