verso-db 0.1.1

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 (68) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/LICENSE +21 -0
  3. package/README.md +252 -0
  4. package/dist/BinaryHeap.d.ts +25 -0
  5. package/dist/BinaryHeap.d.ts.map +1 -0
  6. package/dist/Collection.d.ts +156 -0
  7. package/dist/Collection.d.ts.map +1 -0
  8. package/dist/HNSWIndex.d.ts +357 -0
  9. package/dist/HNSWIndex.d.ts.map +1 -0
  10. package/dist/MaxBinaryHeap.d.ts +63 -0
  11. package/dist/MaxBinaryHeap.d.ts.map +1 -0
  12. package/dist/Storage.d.ts +54 -0
  13. package/dist/Storage.d.ts.map +1 -0
  14. package/dist/VectorDB.d.ts +44 -0
  15. package/dist/VectorDB.d.ts.map +1 -0
  16. package/dist/backends/DistanceBackend.d.ts +5 -0
  17. package/dist/backends/DistanceBackend.d.ts.map +1 -0
  18. package/dist/backends/JsDistanceBackend.d.ts +37 -0
  19. package/dist/backends/JsDistanceBackend.d.ts.map +1 -0
  20. package/dist/encoding/DeltaEncoder.d.ts +61 -0
  21. package/dist/encoding/DeltaEncoder.d.ts.map +1 -0
  22. package/dist/errors.d.ts +58 -0
  23. package/dist/errors.d.ts.map +1 -0
  24. package/dist/index.d.ts +64 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +3732 -0
  27. package/dist/presets.d.ts +91 -0
  28. package/dist/presets.d.ts.map +1 -0
  29. package/dist/quantization/ScalarQuantizer.d.ts +114 -0
  30. package/dist/quantization/ScalarQuantizer.d.ts.map +1 -0
  31. package/dist/storage/BatchWriter.d.ts +104 -0
  32. package/dist/storage/BatchWriter.d.ts.map +1 -0
  33. package/dist/storage/BunStorageBackend.d.ts +58 -0
  34. package/dist/storage/BunStorageBackend.d.ts.map +1 -0
  35. package/dist/storage/MemoryBackend.d.ts +44 -0
  36. package/dist/storage/MemoryBackend.d.ts.map +1 -0
  37. package/dist/storage/OPFSBackend.d.ts +59 -0
  38. package/dist/storage/OPFSBackend.d.ts.map +1 -0
  39. package/dist/storage/StorageBackend.d.ts +66 -0
  40. package/dist/storage/StorageBackend.d.ts.map +1 -0
  41. package/dist/storage/WriteAheadLog.d.ts +111 -0
  42. package/dist/storage/WriteAheadLog.d.ts.map +1 -0
  43. package/dist/storage/createStorageBackend.d.ts +40 -0
  44. package/dist/storage/createStorageBackend.d.ts.map +1 -0
  45. package/dist/storage/index.d.ts +30 -0
  46. package/dist/storage/index.d.ts.map +1 -0
  47. package/package.json +98 -0
  48. package/src/BinaryHeap.ts +131 -0
  49. package/src/Collection.ts +695 -0
  50. package/src/HNSWIndex.ts +1839 -0
  51. package/src/MaxBinaryHeap.ts +175 -0
  52. package/src/Storage.ts +435 -0
  53. package/src/VectorDB.ts +109 -0
  54. package/src/backends/DistanceBackend.ts +17 -0
  55. package/src/backends/JsDistanceBackend.ts +227 -0
  56. package/src/encoding/DeltaEncoder.ts +217 -0
  57. package/src/errors.ts +110 -0
  58. package/src/index.ts +138 -0
  59. package/src/presets.ts +229 -0
  60. package/src/quantization/ScalarQuantizer.ts +383 -0
  61. package/src/storage/BatchWriter.ts +336 -0
  62. package/src/storage/BunStorageBackend.ts +161 -0
  63. package/src/storage/MemoryBackend.ts +120 -0
  64. package/src/storage/OPFSBackend.ts +250 -0
  65. package/src/storage/StorageBackend.ts +74 -0
  66. package/src/storage/WriteAheadLog.ts +326 -0
  67. package/src/storage/createStorageBackend.ts +137 -0
  68. package/src/storage/index.ts +53 -0
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Base error class for all VectorDB errors
3
+ */
4
+ export declare class VectorDBError extends Error {
5
+ readonly code: string;
6
+ constructor(message: string, code: string);
7
+ }
8
+ /**
9
+ * Thrown when vector dimensions don't match expected dimensions
10
+ */
11
+ export declare class DimensionMismatchError extends VectorDBError {
12
+ readonly expected: number;
13
+ readonly actual: number;
14
+ constructor(expected: number, actual: number, context?: string);
15
+ }
16
+ /**
17
+ * Thrown when attempting to add a vector with an ID that already exists
18
+ */
19
+ export declare class DuplicateVectorError extends VectorDBError {
20
+ readonly ids: string[];
21
+ constructor(ids: string[]);
22
+ }
23
+ /**
24
+ * Thrown when a requested collection does not exist
25
+ */
26
+ export declare class CollectionNotFoundError extends VectorDBError {
27
+ readonly collectionName: string;
28
+ constructor(collectionName: string);
29
+ }
30
+ /**
31
+ * Thrown when attempting to create a collection that already exists
32
+ */
33
+ export declare class CollectionExistsError extends VectorDBError {
34
+ readonly collectionName: string;
35
+ constructor(collectionName: string);
36
+ }
37
+ /**
38
+ * Thrown when a storage operation fails
39
+ */
40
+ export declare class StorageError extends VectorDBError {
41
+ readonly operation: string;
42
+ readonly path?: string;
43
+ constructor(operation: string, message: string, path?: string);
44
+ }
45
+ /**
46
+ * Thrown when quantization operations fail
47
+ */
48
+ export declare class QuantizationError extends VectorDBError {
49
+ constructor(message: string);
50
+ }
51
+ /**
52
+ * Thrown when a vector is not found in the index
53
+ */
54
+ export declare class VectorNotFoundError extends VectorDBError {
55
+ readonly vectorId: string | number;
56
+ constructor(vectorId: string | number);
57
+ }
58
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAK1C;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAS/D;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;gBAEX,GAAG,EAAE,MAAM,EAAE;CAQ1B;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;gBAEpB,cAAc,EAAE,MAAM;CAKnC;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;gBAEpB,cAAc,EAAE,MAAM;CAKnC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAM9D;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;gBAEvB,QAAQ,EAAE,MAAM,GAAG,MAAM;CAKtC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * verso - High-performance vector search with HNSW indexing
3
+ *
4
+ * Features:
5
+ * - HNSW algorithm for approximate nearest neighbor search
6
+ * - Multiple distance metrics: cosine, euclidean, dot product
7
+ * - Int8 scalar quantization for 4x memory reduction
8
+ * - Batch query support for improved throughput
9
+ * - Parameter presets for different use cases
10
+ * - Multi-platform: Bun (file system) and Browser (OPFS)
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { VectorDB, getRecommendedPreset } from 'verso';
15
+ *
16
+ * const db = new VectorDB();
17
+ * const preset = getRecommendedPreset(768);
18
+ *
19
+ * const collection = await db.createCollection('my-vectors', {
20
+ * dimension: 768,
21
+ * metric: 'cosine',
22
+ * M: preset.M,
23
+ * efConstruction: preset.efConstruction
24
+ * });
25
+ *
26
+ * await collection.add({
27
+ * ids: ['doc1', 'doc2'],
28
+ * vectors: [new Float32Array(768), new Float32Array(768)]
29
+ * });
30
+ *
31
+ * const results = await collection.query({
32
+ * queryVector: new Float32Array(768),
33
+ * k: 10,
34
+ * efSearch: preset.efSearch
35
+ * });
36
+ * ```
37
+ *
38
+ * @packageDocumentation
39
+ * @module verso
40
+ */
41
+ export { VectorDB } from './VectorDB';
42
+ export type { VectorDBConfig } from './VectorDB';
43
+ export { Collection } from './Collection';
44
+ export type { AddConfig, QueryConfig, QueryResult } from './Collection';
45
+ export { HNSWIndex } from './HNSWIndex';
46
+ export type { DistanceMetric, Node } from './HNSWIndex';
47
+ export type { DistanceBackend } from './backends/DistanceBackend';
48
+ export { JsDistanceBackend, dotProductFast, l2SquaredFast, normalizeInPlace, cosineDistanceFast } from './backends/JsDistanceBackend';
49
+ export { BinaryHeap } from './BinaryHeap';
50
+ export { MaxBinaryHeap } from './MaxBinaryHeap';
51
+ export { ScalarQuantizer, QuantizedVectorStore, dotProductInt8, l2SquaredInt8, cosineDistanceInt8 } from './quantization/ScalarQuantizer';
52
+ export type { QuantizationParams } from './quantization/ScalarQuantizer';
53
+ export type { HNSWPreset } from './presets';
54
+ export { PRESET_LOW_DIM, PRESET_MEDIUM_DIM, PRESET_HIGH_DIM, PRESET_VERY_HIGH_DIM, PRESET_SMALL_DATASET, PRESET_LARGE_DATASET, PRESET_MAX_RECALL, PRESET_LOW_LATENCY, PRESETS, getRecommendedPreset, getPreset, getRAGPreset } from './presets';
55
+ export type { StorageBackend, StorageOptions } from './storage/StorageBackend';
56
+ export { BunStorageBackend } from './storage/BunStorageBackend';
57
+ export { MemoryBackend } from './storage/MemoryBackend';
58
+ export { OPFSBackend } from './storage/OPFSBackend';
59
+ export { createStorageBackend, getRecommendedStorageType, isStorageTypeAvailable, type StorageType, type CreateStorageOptions, } from './storage/createStorageBackend';
60
+ export { WriteAheadLog, WALOperationType, type WALEntry, } from './storage/WriteAheadLog';
61
+ export { BatchWriter, createBatchWriter, type BatchWriterOptions, } from './storage/BatchWriter';
62
+ export { deltaEncodeNeighbors, deltaDecodeNeighbors, deltaEncodedSize, encodeVarint, decodeVarint, } from './encoding/DeltaEncoder';
63
+ export { VectorDBError, DimensionMismatchError, DuplicateVectorError, CollectionNotFoundError, CollectionExistsError, StorageError, QuantizationError, VectorNotFoundError, } from './errors';
64
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxD,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIzE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,OAAO,EACP,oBAAoB,EACpB,SAAS,EACT,YAAY,EACb,MAAM,WAAW,CAAC;AAGnB,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,oBAAoB,GAC1B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,KAAK,QAAQ,GACd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,KAAK,kBAAkB,GACxB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACb,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,UAAU,CAAC"}