eigen-db 4.2.0 → 4.3.0
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.
- package/CHANGELOG.md +4 -0
- package/README.md +14 -5
- package/dist/eigen-db.js +186 -186
- package/dist/eigen-db.js.map +1 -1
- package/dist/eigen-db.umd.cjs +1 -1
- package/dist/eigen-db.umd.cjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/__tests__/vector-db.test.ts +40 -0
- package/src/lib/simd-binary.ts +1 -1
- package/src/lib/simd-optimized.wat +362 -0
- package/src/lib/simd.wat +42 -248
- package/src/lib/types.ts +2 -4
- package/src/lib/vector-db.ts +2 -3
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ High-performance vector database for the web.
|
|
|
4
4
|
|
|
5
5
|
`eigen-db` stores and queries embedding vectors in-browser, using:
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- Pluggable storage backends (in-memory by default, OPFS for browser persistence)
|
|
8
8
|
- WASM SIMD for fast compute when available
|
|
9
9
|
- JavaScript fallback when WASM SIMD is unavailable
|
|
10
10
|
|
|
@@ -21,13 +21,24 @@ npm install eigen-db
|
|
|
21
21
|
```ts
|
|
22
22
|
import { DB } from "eigen-db";
|
|
23
23
|
|
|
24
|
+
// In-memory (default) — no persistence, great for ephemeral sessions
|
|
24
25
|
const db = await DB.open({
|
|
25
|
-
name: "my-index", // optional, defaults to "default"
|
|
26
26
|
dimensions: 1536, // required
|
|
27
27
|
normalize: true, // optional, defaults to true
|
|
28
28
|
});
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
+
For browser persistence, mount an OPFS storage backend:
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
import { DB, OPFSStorageProvider } from "eigen-db";
|
|
35
|
+
|
|
36
|
+
const db = await DB.open({
|
|
37
|
+
dimensions: 1536,
|
|
38
|
+
storage: new OPFSStorageProvider("my-index"), // persistent OPFS directory
|
|
39
|
+
});
|
|
40
|
+
```
|
|
41
|
+
|
|
31
42
|
### 2) Insert vectors
|
|
32
43
|
|
|
33
44
|
```ts
|
|
@@ -221,9 +232,9 @@ interface ResultItem {
|
|
|
221
232
|
|
|
222
233
|
```ts
|
|
223
234
|
interface OpenOptions {
|
|
224
|
-
name?: string; // OPFS directory name, default: "default"
|
|
225
235
|
dimensions: number; // vector size
|
|
226
236
|
normalize?: boolean; // default: true
|
|
237
|
+
storage?: StorageProvider; // default: InMemoryStorageProvider
|
|
227
238
|
}
|
|
228
239
|
```
|
|
229
240
|
|
|
@@ -233,12 +244,10 @@ Advanced/testing override options.
|
|
|
233
244
|
|
|
234
245
|
```ts
|
|
235
246
|
interface OpenOptionsInternal extends OpenOptions {
|
|
236
|
-
storage?: StorageProvider;
|
|
237
247
|
wasmBinary?: Uint8Array | null;
|
|
238
248
|
}
|
|
239
249
|
```
|
|
240
250
|
|
|
241
|
-
- `storage`: provide custom storage implementation (for example, tests)
|
|
242
251
|
- `wasmBinary`:
|
|
243
252
|
- `Uint8Array`: use provided precompiled WASM
|
|
244
253
|
- `null`: force JavaScript-only compute
|