@ruvector/wasm 0.1.31 — corrected WASM adapter
·
588 commits
to main
since this release
@ruvector/wasm 0.1.31
Ships the RuvectorWasmAdapter (@ruvector/wasm/adapter) from #568 and restores a functional published package — 0.1.30 had shipped with only package.json (empty pkg/); 0.1.31 includes the built web pkg/ (WASM + JS bindings) plus the adapter.
The adapter corrects three behaviours of the raw WASM build
- HNSW not active — the wasm32 target compiles without the
hnswfeature and falls back to a flat (brute-force) index. The adapter surfaces this viaindexType/WASM_HNSW_AVAILABLEinstead of letting callers assume O(log n). scorewas a cosine distance (lower is better), contradicting the.d.ts. The adapter exposes a realsimilarity = 1 - distance(per-metric) so "higher is better" holds, with the rawdistancepreserved.- Metadata did not round-trip —
search/getreturned{}. The adapter keeps an in-process metadata sidecar keyed by id and re-attaches it on the way out.
Usage
import { RuvectorWasmAdapter } from '@ruvector/wasm/adapter';
const index = await RuvectorWasmAdapter.create({ dimensions: 384, metric: 'cosine' });
index.insert({ id: 'doc_1', vector: embedding, metadata: { title: 'My Document' } });
const results = index.search({ vector: query, k: 10 });
// results[i].similarity (higher better), .distance (raw), .metadata (round-trips), index.indexType ('flat')- Tarball: 13 files, 381 kB unpacked · npm: https://www.npmjs.com/package/@ruvector/wasm
- Adapter validated by 7 Node tests (all 3 findings + filter/batch/delete). PR #568.