lodedb 1.3.0__tar.gz → 1.3.2__tar.gz

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 (176) hide show
  1. {lodedb-1.3.0 → lodedb-1.3.2}/Cargo.toml +1 -1
  2. {lodedb-1.3.0 → lodedb-1.3.2}/PKG-INFO +46 -3
  3. {lodedb-1.3.0 → lodedb-1.3.2}/README.md +43 -2
  4. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/examples/write_generation_fixture.rs +1 -0
  5. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/examples/write_wal_fixture.rs +1 -0
  6. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/engine/mod.rs +1606 -257
  7. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/lib.rs +1 -1
  8. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/storage/commit_manifest.rs +6 -0
  9. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/storage/mod.rs +59 -0
  10. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/storage/multivec_store.rs +1 -20
  11. lodedb-1.3.2/crates/lodedb-core/src/storage/tvvf_store.rs +2088 -0
  12. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/storage/util.rs +86 -3
  13. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/storage/wal.rs +220 -10
  14. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/types.rs +32 -1
  15. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/vector/turbovec.rs +8 -0
  16. lodedb-1.3.2/crates/lodedb-core/tests/block_skip_layout.rs +55 -0
  17. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/tests/core_engine.rs +1882 -16
  18. lodedb-1.3.2/crates/lodedb-core/tests/operator_observability.rs +216 -0
  19. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/tests/storage_fixtures.rs +7 -0
  20. {lodedb-1.3.0 → lodedb-1.3.2}/pyproject.toml +8 -2
  21. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/__init__.py +3 -1
  22. lodedb-1.3.2/src/lodedb/_native_core.py +77 -0
  23. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/embedding_backends.py +319 -0
  24. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/native_adapter.py +42 -0
  25. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/__init__.py +2 -0
  26. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/backends.py +74 -6
  27. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/cli.py +10 -2
  28. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/db.py +436 -45
  29. lodedb-1.3.2/src/lodedb/local/doctor.py +729 -0
  30. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/integrations/__init__.py +13 -2
  31. lodedb-1.3.2/src/lodedb/local/integrations/cognee.py +689 -0
  32. lodedb-1.3.2/src/lodedb/local/integrations/kotaemon.py +604 -0
  33. lodedb-1.3.2/src/lodedb/local/segments.py +187 -0
  34. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/server.py +52 -1
  35. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/Cargo.lock +2 -2
  36. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/src/error.rs +31 -0
  37. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/src/id_map.rs +40 -1
  38. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/src/lib.rs +64 -1
  39. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/id_map.rs +133 -0
  40. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/src/lib.rs +334 -80
  41. lodedb-1.3.0/src/lodedb/_native_core.py +0 -35
  42. lodedb-1.3.0/src/lodedb/local/doctor.py +0 -298
  43. {lodedb-1.3.0 → lodedb-1.3.2}/LICENSE +0 -0
  44. {lodedb-1.3.0 → lodedb-1.3.2}/NOTICE +0 -0
  45. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/Cargo.toml +0 -0
  46. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/examples/filter_planner_bench.rs +0 -0
  47. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/examples/turbovec_adapter_smoke.rs +0 -0
  48. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/error.rs +0 -0
  49. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/filter/ast.rs +0 -0
  50. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/filter/doc_set.rs +0 -0
  51. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/filter/field_index.rs +0 -0
  52. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/filter/mod.rs +0 -0
  53. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/filter/predicate.rs +0 -0
  54. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/filter/resolve.rs +0 -0
  55. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/filter/validate.rs +0 -0
  56. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/lexical/bm25.rs +0 -0
  57. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/lexical/mod.rs +0 -0
  58. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/lexical/rrf.rs +0 -0
  59. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/lexical/tokenize.rs +0 -0
  60. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/storage/legacy.rs +0 -0
  61. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/storage/lexical_store.rs +0 -0
  62. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/storage/lsn.rs +0 -0
  63. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/storage/state_journal.rs +0 -0
  64. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/storage/text_store.rs +0 -0
  65. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/storage/tvann_store.rs +0 -0
  66. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/storage/tvim_delta.rs +0 -0
  67. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/text/chunk.rs +0 -0
  68. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/text/hash.rs +0 -0
  69. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/text/mod.rs +0 -0
  70. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/vector/ann.rs +0 -0
  71. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/vector/index.rs +0 -0
  72. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/vector/math.rs +0 -0
  73. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/vector/mod.rs +0 -0
  74. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/vector/stable_id.rs +0 -0
  75. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/src/version.rs +0 -0
  76. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/tests/ann_build_bench.rs +0 -0
  77. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/tests/filter_plan_fixtures.rs +0 -0
  78. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/tests/identity_fixtures.rs +0 -0
  79. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/tests/lexical_fixtures.rs +0 -0
  80. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/tests/predicate_fixtures.rs +0 -0
  81. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-core/tests/turbovec_adapter.rs +0 -0
  82. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-gpu/Cargo.toml +0 -0
  83. {lodedb-1.3.0 → lodedb-1.3.2}/crates/lodedb-gpu/src/lib.rs +0 -0
  84. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/__main__.py +0 -0
  85. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/config.py +0 -0
  86. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/__init__.py +0 -0
  87. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/_atomic_io.py +0 -0
  88. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/_commit_manifest.py +0 -0
  89. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/_filelock.py +0 -0
  90. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/_lexical.py +0 -0
  91. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/_predicate.py +0 -0
  92. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/core.py +0 -0
  93. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/gpu_turbovec.py +0 -0
  94. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/route_profiles.py +0 -0
  95. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/route_registry.py +0 -0
  96. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/runtime_policy.py +0 -0
  97. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/state_journal_store.py +0 -0
  98. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/turbovec_delta_store.py +0 -0
  99. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/engine/turbovec_index.py +0 -0
  100. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/graph/__init__.py +0 -0
  101. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/graph/_store.py +0 -0
  102. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/graph/knowledge_graph.py +0 -0
  103. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/appender.py +0 -0
  104. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/benchmark.py +0 -0
  105. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/checkpointer.py +0 -0
  106. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/collection.py +0 -0
  107. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/integrations/langchain.py +0 -0
  108. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/integrations/llama_index.py +0 -0
  109. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/integrations/llama_index_graph.py +0 -0
  110. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/integrations/mem0.py +0 -0
  111. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/integrations/privategpt.py +0 -0
  112. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/late_interaction.py +0 -0
  113. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/mcp_install.py +0 -0
  114. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/mcp_server.py +0 -0
  115. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/migrate/__init__.py +0 -0
  116. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/migrate/cli.py +0 -0
  117. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/migrate/detect.py +0 -0
  118. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/migrate/plan.py +0 -0
  119. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/migrate/report.py +0 -0
  120. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/migrate/runner.py +0 -0
  121. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/migrate/sources/__init__.py +0 -0
  122. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/migrate/sources/base.py +0 -0
  123. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/migrate/sources/langchain_inmemory.py +0 -0
  124. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/migrate/sources/llama_index_simple.py +0 -0
  125. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/migrate/sources/mem0_qdrant.py +0 -0
  126. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/migrate/sources/pgvector.py +0 -0
  127. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/onnx_artifacts.py +0 -0
  128. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/local/presets.py +0 -0
  129. {lodedb-1.3.0 → lodedb-1.3.2}/src/lodedb/py.typed +0 -0
  130. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/Cargo.toml +0 -0
  131. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/Cargo.toml +0 -0
  132. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/README.md +0 -0
  133. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/build.rs +0 -0
  134. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/examples/dump_state.rs +0 -0
  135. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/examples/kernel_xtest.rs +0 -0
  136. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/src/codebook.rs +0 -0
  137. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/src/encode.rs +0 -0
  138. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/src/io.rs +0 -0
  139. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/src/maxsim.rs +0 -0
  140. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/src/pack.rs +0 -0
  141. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/src/rotation.rs +0 -0
  142. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/src/search.rs +0 -0
  143. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/codebook.rs +0 -0
  144. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/concurrent_search.rs +0 -0
  145. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/distortion.rs +0 -0
  146. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/encode.rs +0 -0
  147. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/encoded_rows.rs +0 -0
  148. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/filtering.rs +0 -0
  149. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/input_validation.rs +0 -0
  150. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/io_versioning.rs +0 -0
  151. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/kernel_correctness.rs +0 -0
  152. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/lazy_init.rs +0 -0
  153. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/reconstruction.rs +0 -0
  154. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/rotation.rs +0 -0
  155. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/state_sequences.rs +0 -0
  156. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/swap_remove.rs +0 -0
  157. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec/tests/tqplus_calibration.rs +0 -0
  158. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/Cargo.toml +0 -0
  159. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/README.md +0 -0
  160. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/build.rs +0 -0
  161. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/python/turbovec/__init__.py +0 -0
  162. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/python/turbovec/_dedup.py +0 -0
  163. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/python/turbovec/_persist.py +0 -0
  164. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/python/turbovec/agno.py +0 -0
  165. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/python/turbovec/haystack.py +0 -0
  166. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/python/turbovec/langchain.py +0 -0
  167. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/python/turbovec/llama_index.py +0 -0
  168. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/tests/test_agno.py +0 -0
  169. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/tests/test_dedup.py +0 -0
  170. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/tests/test_filtering.py +0 -0
  171. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/tests/test_haystack.py +0 -0
  172. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/tests/test_id_map.py +0 -0
  173. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/tests/test_index.py +0 -0
  174. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/tests/test_langchain.py +0 -0
  175. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/tests/test_llama_index.py +0 -0
  176. {lodedb-1.3.0 → lodedb-1.3.2}/third_party/turbovec/turbovec-python/tests/test_security.py +0 -0
@@ -7,7 +7,7 @@ members = [
7
7
  resolver = "2"
8
8
 
9
9
  [workspace.package]
10
- version = "1.3.0"
10
+ version = "1.3.2"
11
11
  edition = "2021"
12
12
  rust-version = "1.70"
13
13
  license = "Apache-2.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lodedb
3
- Version: 1.3.0
3
+ Version: 1.3.2
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: Programming Language :: Python :: 3 :: Only
@@ -10,6 +10,7 @@ Requires-Dist: numpy>=2.0.0,<3
10
10
  Requires-Dist: typer>=0.12.0
11
11
  Requires-Dist: pyyaml>=6.0.0
12
12
  Requires-Dist: lodedb[embeddings,torch,image,mcp,langchain,llama-index,mem0] ; extra == 'all'
13
+ Requires-Dist: cognee>=1.1.0,<2 ; python_full_version < '3.15' and extra == 'cognee'
13
14
  Requires-Dist: pytest>=8.3.0 ; extra == 'dev'
14
15
  Requires-Dist: ruff==0.15.17 ; extra == 'dev'
15
16
  Requires-Dist: onnxruntime>=1.20.0,<2 ; extra == 'embeddings'
@@ -24,6 +25,7 @@ Requires-Dist: mem0ai>=2.0.0 ; extra == 'mem0'
24
25
  Requires-Dist: optimum[exporters]>=1.23.0,<2.0.0 ; extra == 'onnx-export'
25
26
  Requires-Dist: sentence-transformers>=3.0.0,<5 ; extra == 'torch'
26
27
  Provides-Extra: all
28
+ Provides-Extra: cognee
27
29
  Provides-Extra: dev
28
30
  Provides-Extra: embeddings
29
31
  Provides-Extra: gpu
@@ -115,7 +117,8 @@ stays **sub-millisecond even at 1M vectors**.
115
117
  [How it works](#multimodal--bring-your-own-vectors).
116
118
  - **Batteries included**: a `lodedb` CLI, a loopback/private-network dev server, an
117
119
  [MCP server](#use-as-an-mcp-server), LangChain, LlamaIndex, and mem0 adapters
118
- (`VectorStore`s, plus a LlamaIndex `PropertyGraphStore`), and a one-line
120
+ (`VectorStore`s, plus a LlamaIndex `PropertyGraphStore`), a
121
+ [cognee](https://github.com/topoteretes/cognee) vector-DB provider, and a one-line
119
122
  [PrivateGPT](https://github.com/zylon-ai/private-gpt) vector-store provider built on the
120
123
  LlamaIndex adapter.
121
124
  - **Swift / iOS bindings**: a native Swift package for macOS and iOS over the same Rust
@@ -156,8 +159,9 @@ pip install "lodedb[embeddings,torch]" # + PyTorch fallback, CLIP,
156
159
  pip install "lodedb[gpu]" # GPU-resident scan (Linux/CUDA)
157
160
  pip install "lodedb[image]" # image + text (CLIP) embedding (model="clip")
158
161
  pip install "lodedb[mcp,langchain,llama-index,mem0]" # MCP server + LangChain/LlamaIndex/mem0 adapters
162
+ pip install "lodedb[cognee]" # register LodeDB as a cognee vector_db_provider
159
163
  pip install "lodedb[onnx-export]" # export ONNX for a custom model (Optimum); presets need no export
160
- pip install "lodedb[all]" # everything above
164
+ pip install "lodedb[all]" # everything above (except gpu/onnx-export/cognee)
161
165
  ```
162
166
 
163
167
  Using LodeDB as memory for a coding assistant? After installing the `mcp,embeddings` extras,
@@ -384,6 +388,42 @@ db.search("turbine fault", k=5) # nearest cluste
384
388
  `ann_clusters` (partitions) defaults to about `sqrt(n)` and `ann_nprobe` (clusters probed per
385
389
  query) to about `sqrt(clusters)`. ANN is a create-time choice persisted with the index and works
386
390
  for text and bring-your-own-vector indexes alike; keep the exact default for small-to-mid corpora.
391
+ On reopen, `ann_nprobe` is a session-only override, so benchmark handles can change probe breadth
392
+ without rebuilding; the algorithm and partition count remain the persisted configuration.
393
+
394
+ For large corpora, these are useful starting ranges to measure, not recall or latency promises:
395
+
396
+ | Knob | Useful range | Trade-off |
397
+ | --- | --- | --- |
398
+ | `ann_nprobe` | 64 to 256 clusters | More probes raise recall and scan work; probing every cluster is exact. |
399
+ | `rescore_oversample` | 2 to 8 times `k` | More candidates improve the chance that fp32 re-ranking repairs compact-code errors, at more sidecar reads. |
400
+ </details>
401
+
402
+ <details>
403
+ <summary><b>Two-stage rescore (`rescore="original"`)</b></summary>
404
+
405
+ TurboVec's compact 4-bit scan is fast, but its quantized first-stage ranking can put close
406
+ neighbors in the wrong order. Enable rescore at creation to retain each input vector in a separate
407
+ original-precision sidecar, then re-score the first-stage candidate pool with fp32 dot products:
408
+
409
+ ```python
410
+ db = LodeDB(
411
+ path="./data",
412
+ ann="cluster",
413
+ ann_clusters=1024,
414
+ rescore="original",
415
+ rescore_dtype="float16", # default; about 2 bytes per dimension per vector
416
+ rescore_oversample=4,
417
+ )
418
+ ```
419
+
420
+ `float16` sidecars add about 2 bytes per dimension per vector (`float32` adds 4; `int8` adds 1).
421
+ They let the final ordering rise above the practical 4-bit ranking ceiling while retaining the
422
+ compact index for candidate generation. Re-scored candidate scores are exact fp32 dots, but the
423
+ overall result can still be approximate when ANN or a too-small candidate pool excludes a true
424
+ neighbor. Rescore is a create-time capture choice: originals are not recoverable after a normal
425
+ store's first ingest, so enabling it later requires a rebuild. On a rescore-enabled reopen,
426
+ `rescore_oversample` is a session-only override; mode and dtype must match the persisted sidecar.
387
427
  </details>
388
428
 
389
429
  ## Multimodal & bring-your-own vectors
@@ -533,6 +573,9 @@ lodedb mcp # stdio MCP server for agent memory
533
573
  lodedb benchmark # local, metrics-only benchmark
534
574
  ```
535
575
 
576
+ Use `lodedb serve` as a local OpenAI-compatible embeddings provider; see [LodeDB as a local
577
+ embeddings provider](docs/integrations.md#lodedb-as-a-local-embeddings-provider).
578
+
536
579
  ## Use as an MCP server
537
580
 
538
581
  LodeDB ships a [Model Context Protocol](https://modelcontextprotocol.io) server, so an agent
@@ -66,7 +66,8 @@ stays **sub-millisecond even at 1M vectors**.
66
66
  [How it works](#multimodal--bring-your-own-vectors).
67
67
  - **Batteries included**: a `lodedb` CLI, a loopback/private-network dev server, an
68
68
  [MCP server](#use-as-an-mcp-server), LangChain, LlamaIndex, and mem0 adapters
69
- (`VectorStore`s, plus a LlamaIndex `PropertyGraphStore`), and a one-line
69
+ (`VectorStore`s, plus a LlamaIndex `PropertyGraphStore`), a
70
+ [cognee](https://github.com/topoteretes/cognee) vector-DB provider, and a one-line
70
71
  [PrivateGPT](https://github.com/zylon-ai/private-gpt) vector-store provider built on the
71
72
  LlamaIndex adapter.
72
73
  - **Swift / iOS bindings**: a native Swift package for macOS and iOS over the same Rust
@@ -107,8 +108,9 @@ pip install "lodedb[embeddings,torch]" # + PyTorch fallback, CLIP,
107
108
  pip install "lodedb[gpu]" # GPU-resident scan (Linux/CUDA)
108
109
  pip install "lodedb[image]" # image + text (CLIP) embedding (model="clip")
109
110
  pip install "lodedb[mcp,langchain,llama-index,mem0]" # MCP server + LangChain/LlamaIndex/mem0 adapters
111
+ pip install "lodedb[cognee]" # register LodeDB as a cognee vector_db_provider
110
112
  pip install "lodedb[onnx-export]" # export ONNX for a custom model (Optimum); presets need no export
111
- pip install "lodedb[all]" # everything above
113
+ pip install "lodedb[all]" # everything above (except gpu/onnx-export/cognee)
112
114
  ```
113
115
 
114
116
  Using LodeDB as memory for a coding assistant? After installing the `mcp,embeddings` extras,
@@ -335,6 +337,42 @@ db.search("turbine fault", k=5) # nearest cluste
335
337
  `ann_clusters` (partitions) defaults to about `sqrt(n)` and `ann_nprobe` (clusters probed per
336
338
  query) to about `sqrt(clusters)`. ANN is a create-time choice persisted with the index and works
337
339
  for text and bring-your-own-vector indexes alike; keep the exact default for small-to-mid corpora.
340
+ On reopen, `ann_nprobe` is a session-only override, so benchmark handles can change probe breadth
341
+ without rebuilding; the algorithm and partition count remain the persisted configuration.
342
+
343
+ For large corpora, these are useful starting ranges to measure, not recall or latency promises:
344
+
345
+ | Knob | Useful range | Trade-off |
346
+ | --- | --- | --- |
347
+ | `ann_nprobe` | 64 to 256 clusters | More probes raise recall and scan work; probing every cluster is exact. |
348
+ | `rescore_oversample` | 2 to 8 times `k` | More candidates improve the chance that fp32 re-ranking repairs compact-code errors, at more sidecar reads. |
349
+ </details>
350
+
351
+ <details>
352
+ <summary><b>Two-stage rescore (`rescore="original"`)</b></summary>
353
+
354
+ TurboVec's compact 4-bit scan is fast, but its quantized first-stage ranking can put close
355
+ neighbors in the wrong order. Enable rescore at creation to retain each input vector in a separate
356
+ original-precision sidecar, then re-score the first-stage candidate pool with fp32 dot products:
357
+
358
+ ```python
359
+ db = LodeDB(
360
+ path="./data",
361
+ ann="cluster",
362
+ ann_clusters=1024,
363
+ rescore="original",
364
+ rescore_dtype="float16", # default; about 2 bytes per dimension per vector
365
+ rescore_oversample=4,
366
+ )
367
+ ```
368
+
369
+ `float16` sidecars add about 2 bytes per dimension per vector (`float32` adds 4; `int8` adds 1).
370
+ They let the final ordering rise above the practical 4-bit ranking ceiling while retaining the
371
+ compact index for candidate generation. Re-scored candidate scores are exact fp32 dots, but the
372
+ overall result can still be approximate when ANN or a too-small candidate pool excludes a true
373
+ neighbor. Rescore is a create-time capture choice: originals are not recoverable after a normal
374
+ store's first ingest, so enabling it later requires a rebuild. On a rescore-enabled reopen,
375
+ `rescore_oversample` is a session-only override; mode and dtype must match the persisted sidecar.
338
376
  </details>
339
377
 
340
378
  ## Multimodal & bring-your-own vectors
@@ -484,6 +522,9 @@ lodedb mcp # stdio MCP server for agent memory
484
522
  lodedb benchmark # local, metrics-only benchmark
485
523
  ```
486
524
 
525
+ Use `lodedb serve` as a local OpenAI-compatible embeddings provider; see [LodeDB as a local
526
+ embeddings provider](docs/integrations.md#lodedb-as-a-local-embeddings-provider).
527
+
487
528
  ## Use as an MCP server
488
529
 
489
530
  LodeDB ships a [Model Context Protocol](https://modelcontextprotocol.io) server, so an agent
@@ -57,6 +57,7 @@ fn main() {
57
57
  lexical_tokens: None,
58
58
  multivec: None,
59
59
  ann: None,
60
+ tvvf_manifest: None,
60
61
  compress_text: true,
61
62
  },
62
63
  GenerationWriteOptions::default(),
@@ -58,6 +58,7 @@ fn main() {
58
58
  lexical_tokens: None,
59
59
  multivec: None,
60
60
  ann: None,
61
+ tvvf_manifest: None,
61
62
  compress_text: true,
62
63
  },
63
64
  GenerationWriteOptions::default(),