@ruvector/node 0.1.25 → 0.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +71 -0
  2. package/package.json +6 -9
package/README.md ADDED
@@ -0,0 +1,71 @@
1
+ <p align="center"><img src="https://raw.githubusercontent.com/ruvnet/RuVector/main/assets/ruvector/packages/node.svg" alt="@ruvector/node: Unified RuVector package for Node.js — high-performance vector database with GNN capabilities." width="100%"></p>
2
+
3
+ # @ruvector/node
4
+
5
+ [![npm](https://img.shields.io/npm/v/@ruvector/node)](https://www.npmjs.com/package/@ruvector/node)
6
+ [![license](https://img.shields.io/npm/l/@ruvector/node)](https://github.com/ruvnet/ruvector/blob/main/LICENSE)
7
+
8
+ One install for the native RuVector vector database and its graph-neural-network (GNN) layer in Node.js. This package re-exports [`@ruvector/core`](https://www.npmjs.com/package/@ruvector/core) (`VectorDB`) and [`@ruvector/gnn`](https://www.npmjs.com/package/@ruvector/gnn) (`RuvectorLayer`, `TensorCompress`, …); both are native N-API modules installed as dependencies.
9
+
10
+ ## Install
11
+
12
+ ```bash
13
+ npm install @ruvector/node
14
+ ```
15
+
16
+ Requires Node.js 18+ on a platform with prebuilt binaries for both dependencies (Linux x64/ARM64 glibc, macOS x64/ARM64, Windows x64).
17
+
18
+ ## Usage
19
+
20
+ ```javascript
21
+ const { VectorDB, RuvectorLayer, TensorCompress, differentiableSearch } = require('@ruvector/node');
22
+
23
+ // Vector database (from @ruvector/core)
24
+ const db = new VectorDB({ dimensions: 4, storagePath: './vectors.db', hnswConfig: {} });
25
+ await db.insert({ id: 'a', vector: new Float32Array([1, 0, 0, 0]) });
26
+ await db.insert({ id: 'b', vector: new Float32Array([0, 1, 0, 0]) });
27
+ const [best] = await db.search({ vector: new Float32Array([1, 0.1, 0, 0]), k: 1 }); // best.id === 'a'
28
+
29
+ // GNN layer (from @ruvector/gnn): inputDim, hiddenDim, heads, dropout
30
+ const layer = new RuvectorLayer(4, 8, 2, 0.1);
31
+ const h = layer.forward(
32
+ new Float32Array([1, 0, 0, 0]), // node embedding
33
+ [new Float32Array([0, 1, 0, 0]), new Float32Array([0, 0, 1, 0])], // neighbor embeddings
34
+ new Float32Array([0.5, 0.5]) // edge weights
35
+ ); // Float32Array of length hiddenDim (8)
36
+
37
+ // Soft top-k over candidate embeddings
38
+ const { indices, weights } = differentiableSearch(
39
+ new Float32Array([1, 0, 0, 0]),
40
+ [new Float32Array([1, 0, 0, 0]), new Float32Array([0, 1, 0, 0])],
41
+ 1, // k
42
+ 1.0 // temperature
43
+ );
44
+
45
+ // Access-frequency-aware embedding compression
46
+ const tc = new TensorCompress();
47
+ const packed = tc.compress(new Float32Array([0.1, 0.2, 0.3, 0.4]), 0.5); // JSON string
48
+ const restored = tc.decompress(packed); // Float32Array
49
+ ```
50
+
51
+ ES modules work too: `import { VectorDB, RuvectorLayer } from '@ruvector/node'`. A default export bundles the same functions.
52
+
53
+ Vectors must be `Float32Array`. See the [`@ruvector/core` README](https://www.npmjs.com/package/@ruvector/core) for `VectorDB` options (distance metrics, `hnswConfig`, `storagePath` defaults) and the [`@ruvector/gnn` README](https://www.npmjs.com/package/@ruvector/gnn) for the GNN API.
54
+
55
+ ## Exports
56
+
57
+ | Entry point | Exports |
58
+ |-------------|---------|
59
+ | `@ruvector/node` | `VectorDB`, `RuvectorLayer`, `TensorCompress`, `differentiableSearch`, `hierarchicalForward`, `getCompressionLevel`, `initGnn`; types `VectorEntry`, `SearchQuery`, `CoreSearchResult`, `GnnSearchResult`, `CompressionLevelConfig` |
60
+ | `@ruvector/node/gnn` | `RuvectorLayer`, `TensorCompress`, `differentiableSearch`, `hierarchicalForward`, `getCompressionLevel`, `init`; types `SearchResult`, `CompressionLevelConfig` |
61
+
62
+ ## Related packages
63
+
64
+ - [`@ruvector/core`](https://www.npmjs.com/package/@ruvector/core) — the vector database re-exported here; install it alone if you don't need GNN.
65
+ - [`@ruvector/gnn`](https://www.npmjs.com/package/@ruvector/gnn) — the GNN layers re-exported here.
66
+ - [`@ruvector/graph-wasm`](https://www.npmjs.com/package/@ruvector/graph-wasm) — property graph + Cypher in WebAssembly, for the relationships your GNN consumes.
67
+ - [`ruvector`](https://www.npmjs.com/package/ruvector) — umbrella package and CLI (`npx ruvector`).
68
+
69
+ ## License
70
+
71
+ MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ruvector/node",
3
- "version": "0.1.25",
3
+ "version": "0.1.26",
4
4
  "description": "Unified Ruvector package - High-performance vector database with GNN capabilities for Node.js",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -42,20 +42,17 @@
42
42
  "LICENSE"
43
43
  ],
44
44
  "keywords": [
45
- "vector",
46
- "database",
45
+ "ruvector",
46
+ "vector-database",
47
47
  "embeddings",
48
48
  "similarity-search",
49
+ "semantic-search",
49
50
  "hnsw",
50
51
  "gnn",
51
52
  "graph-neural-network",
52
- "rust",
53
- "napi",
54
- "semantic-search",
55
- "machine-learning",
56
53
  "rag",
57
- "simd",
58
- "performance"
54
+ "napi",
55
+ "rust"
59
56
  ],
60
57
  "author": "rUv",
61
58
  "license": "MIT",