@sochdb/sochdb 0.4.1 → 0.4.2
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/README.md +196 -1
- package/dist/cjs/embedded/ffi/hnsw-bindings.js +295 -0
- package/dist/cjs/embedded/ffi/library-finder.js +10 -3
- package/dist/cjs/embedded/index.js +5 -2
- package/dist/cjs/index.js +9 -6
- package/dist/esm/embedded/ffi/hnsw-bindings.js +316 -0
- package/dist/esm/embedded/ffi/library-finder.js +10 -3
- package/dist/esm/embedded/index.js +5 -2
- package/dist/esm/index.js +9 -6
- package/dist/types/embedded/ffi/hnsw-bindings.d.ts +90 -0
- package/dist/types/embedded/ffi/hnsw-bindings.d.ts.map +1 -0
- package/dist/types/embedded/ffi/library-finder.d.ts.map +1 -1
- package/dist/types/embedded/index.d.ts +1 -0
- package/dist/types/embedded/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HNSW Vector Index FFI Bindings
|
|
3
|
+
*
|
|
4
|
+
* Native vector search using HNSW (Hierarchical Navigable Small World) algorithm.
|
|
5
|
+
*
|
|
6
|
+
* @see sochdb-index/src/ffi.rs
|
|
7
|
+
*/
|
|
8
|
+
export interface SearchResult {
|
|
9
|
+
id: string;
|
|
10
|
+
distance: number;
|
|
11
|
+
}
|
|
12
|
+
export interface HnswConfig {
|
|
13
|
+
dimension: number;
|
|
14
|
+
maxConnections?: number;
|
|
15
|
+
efConstruction?: number;
|
|
16
|
+
efSearch?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare class HnswBindings {
|
|
19
|
+
private static instance;
|
|
20
|
+
private lib;
|
|
21
|
+
hnsw_new: any;
|
|
22
|
+
hnsw_free: any;
|
|
23
|
+
hnsw_insert: any;
|
|
24
|
+
hnsw_insert_batch: any;
|
|
25
|
+
hnsw_insert_flat: any;
|
|
26
|
+
hnsw_insert_batch_flat: any;
|
|
27
|
+
hnsw_search: any;
|
|
28
|
+
hnsw_search_fast: any;
|
|
29
|
+
hnsw_search_ultra: any;
|
|
30
|
+
hnsw_len: any;
|
|
31
|
+
hnsw_dimension: any;
|
|
32
|
+
hnsw_set_ef_search: any;
|
|
33
|
+
hnsw_get_ef_search: any;
|
|
34
|
+
hnsw_build_flat_cache: any;
|
|
35
|
+
private constructor();
|
|
36
|
+
static getInstance(): HnswBindings;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* High-level HNSW Index wrapper
|
|
40
|
+
*/
|
|
41
|
+
export declare class HnswIndex {
|
|
42
|
+
private ptr;
|
|
43
|
+
private bindings;
|
|
44
|
+
private _dimension;
|
|
45
|
+
private _efSearch;
|
|
46
|
+
constructor(config: HnswConfig);
|
|
47
|
+
/**
|
|
48
|
+
* Insert a single vector
|
|
49
|
+
*/
|
|
50
|
+
insert(id: string, vector: number[]): void;
|
|
51
|
+
/**
|
|
52
|
+
* Insert multiple vectors in batch (faster)
|
|
53
|
+
*/
|
|
54
|
+
insertBatch(ids: string[], vectors: number[][]): void;
|
|
55
|
+
/**
|
|
56
|
+
* Search for k nearest neighbors
|
|
57
|
+
*/
|
|
58
|
+
search(queryVector: number[], k: number, fast?: boolean): SearchResult[];
|
|
59
|
+
/**
|
|
60
|
+
* Ultra-fast search with minimal ef_search
|
|
61
|
+
*/
|
|
62
|
+
searchUltra(queryVector: number[], k: number): SearchResult[];
|
|
63
|
+
/**
|
|
64
|
+
* Get number of vectors in index
|
|
65
|
+
*/
|
|
66
|
+
get length(): number;
|
|
67
|
+
/**
|
|
68
|
+
* Get vector dimension
|
|
69
|
+
*/
|
|
70
|
+
get dimension(): number;
|
|
71
|
+
/**
|
|
72
|
+
* Set ef_search parameter (controls search quality vs speed)
|
|
73
|
+
*/
|
|
74
|
+
set efSearch(value: number);
|
|
75
|
+
/**
|
|
76
|
+
* Get ef_search parameter
|
|
77
|
+
*/
|
|
78
|
+
get efSearch(): number;
|
|
79
|
+
/**
|
|
80
|
+
* Build flat cache for faster searches
|
|
81
|
+
*/
|
|
82
|
+
buildFlatCache(): void;
|
|
83
|
+
/**
|
|
84
|
+
* Free native resources
|
|
85
|
+
*/
|
|
86
|
+
close(): void;
|
|
87
|
+
private stringToId;
|
|
88
|
+
private idToString;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=hnsw-bindings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hnsw-bindings.d.ts","sourceRoot":"","sources":["../../../../src/embedded/ffi/hnsw-bindings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,GAAG,CAAM;IAGV,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,GAAG,CAAC;IACf,WAAW,EAAE,GAAG,CAAC;IACjB,iBAAiB,EAAE,GAAG,CAAC;IACvB,gBAAgB,EAAE,GAAG,CAAC;IACtB,sBAAsB,EAAE,GAAG,CAAC;IAC5B,WAAW,EAAE,GAAG,CAAC;IACjB,gBAAgB,EAAE,GAAG,CAAC;IACtB,iBAAiB,EAAE,GAAG,CAAC;IACvB,QAAQ,EAAE,GAAG,CAAC;IACd,cAAc,EAAE,GAAG,CAAC;IACpB,kBAAkB,EAAE,GAAG,CAAC;IACxB,kBAAkB,EAAE,GAAG,CAAC;IACxB,qBAAqB,EAAE,GAAG,CAAC;IAElC,OAAO;WAuFO,WAAW,IAAI,YAAY;CAM5C;AAED;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,UAAU;IAmB9B;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAgB1C;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI;IAmCrD;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,OAAe,GAAG,YAAY,EAAE;IAgC/E;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IA6B7D;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAGzB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,cAAc,IAAI,IAAI;IAOtB;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,UAAU;CAIrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library-finder.d.ts","sourceRoot":"","sources":["../../../../src/embedded/ffi/library-finder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyCH;;;;;;;;GAQG;AACH,wBAAgB,WAAW,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"library-finder.d.ts","sourceRoot":"","sources":["../../../../src/embedded/ffi/library-finder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyCH;;;;;;;;GAQG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAiEpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/embedded/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/embedded/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* SochDB Node.js SDK v0.4.
|
|
2
|
+
* SochDB Node.js SDK v0.4.2
|
|
3
3
|
*
|
|
4
4
|
* Dual-mode architecture: Embedded (FFI) + Server (gRPC/IPC)
|
|
5
5
|
*
|
|
@@ -35,9 +35,11 @@
|
|
|
35
35
|
* await client.putKv('key', Buffer.from('value'));
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
|
-
export declare const VERSION = "0.4.
|
|
38
|
+
export declare const VERSION = "0.4.2";
|
|
39
39
|
export { EmbeddedDatabase, EmbeddedDatabaseConfig } from './embedded';
|
|
40
40
|
export { EmbeddedTransaction } from './embedded';
|
|
41
|
+
export { HnswIndex, HnswConfig, HnswBindings } from './embedded';
|
|
42
|
+
export { SearchResult as HnswSearchResult } from './embedded';
|
|
41
43
|
export { EmbeddedDatabase as Database } from './embedded';
|
|
42
44
|
export { Namespace, Collection, DistanceMetric, NamespaceNotFoundError, NamespaceExistsError, CollectionNotFoundError, CollectionExistsError, } from './namespace';
|
|
43
45
|
export type { NamespaceConfig, CollectionConfig, SearchRequest, SearchResult as NamespaceSearchResult, } from './namespace';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EACL,SAAS,EACT,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,YAAY,IAAI,qBAAqB,GACtC,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,SAAS,EACT,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,UAAU,EACV,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,aAAa,EAEb,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,YAAY,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sochdb/sochdb",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "SochDB is an AI-native database with token-optimized output, O(|path|) lookups, built-in vector search, and durable transactions.",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|