sqlitegraph 0.1.0__tar.gz → 0.1.1__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 (447) hide show
  1. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/Cargo.lock +3 -3
  2. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/PKG-INFO +20 -3
  3. sqlitegraph-0.1.1/README.md +44 -0
  4. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/pyproject.toml +1 -1
  5. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/Cargo.toml +1 -1
  6. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/index_api.rs +4 -3
  7. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-py/CHANGELOG.md +10 -0
  8. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-py/Cargo.toml +1 -1
  9. sqlitegraph-0.1.1/sqlitegraph-py/README.md +44 -0
  10. sqlitegraph-0.1.1/sqlitegraph-py/examples/01_basic_crud.py +71 -0
  11. sqlitegraph-0.1.1/sqlitegraph-py/examples/02_graph_algorithms.py +99 -0
  12. sqlitegraph-0.1.1/sqlitegraph-py/examples/03_vector_search.py +66 -0
  13. sqlitegraph-0.1.1/sqlitegraph-py/examples/04_social_network.py +99 -0
  14. sqlitegraph-0.1.1/sqlitegraph-py/examples/05_file_backed.py +56 -0
  15. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-py/src/lib.rs +3 -1
  16. sqlitegraph-0.1.0/README.md +0 -27
  17. sqlitegraph-0.1.0/sqlitegraph-core/src/config/config.rs +0 -82
  18. sqlitegraph-0.1.0/sqlitegraph-py/README.md +0 -27
  19. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/Cargo.toml +0 -0
  20. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/python/sqlitegraph/__init__.py +0 -0
  21. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/python/sqlitegraph/_native.pyi +0 -0
  22. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/python/sqlitegraph/py.typed +0 -0
  23. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/.gitignore +0 -0
  24. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/BLOCK_AWARE_CACHE_BEHAVIOR_REPORT.md +0 -0
  25. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/BLOCK_LOCALITY_PROTOTYPE_REPORT.md +0 -0
  26. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/BUG_10K_INVESTIGATION_SUMMARY.md +0 -0
  27. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/BUG_SNAPSHOTID_SQLITE_BACKEND.md +0 -0
  28. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/CACHE_CAPACITY_SWEEP_REPORT.md +0 -0
  29. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/CACHE_CLONE_FIX_REPORT.md +0 -0
  30. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/CHANGELOG.md +0 -0
  31. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/COLD_PATH_FORENSICS_REPORT.md +0 -0
  32. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/COLD_WARM_BENCHMARK_SPLIT_REPORT.md +0 -0
  33. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/EDGE_CORRUPTION_ROOT_CAUSE.md +0 -0
  34. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/LICENSE +0 -0
  35. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/MAIN_BENCHMARK_RERUN_REPORT.md +0 -0
  36. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/NODE_PAGE_OVERFLOW_FIX_REPORT.md +0 -0
  37. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/PAGE_ID_COLLISION_ROOT_CAUSE.md +0 -0
  38. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/PHASE3_NODE_PAGE_CACHE_FIX_REPORT.md +0 -0
  39. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/PHYSICAL_BLOCK_PLACEMENT_PROTOTYPE_REPORT.md +0 -0
  40. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/README.md +0 -0
  41. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/REBUILD_INDEXES_FIX_REPORT.md +0 -0
  42. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/REOPEN_CORRUPTION_FORENSICS.md +0 -0
  43. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/V3_10K_NODE_BUG_FIX.md +0 -0
  44. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/V3_FILE_IO_COORDINATION.md +0 -0
  45. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/V3_FORENSIC_REPORT.md +0 -0
  46. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/V3_REGRESSION_SWEEP_REPORT.md +0 -0
  47. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/adaptive_page_simple.rs +0 -0
  48. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/adjlist_benchmark.rs +0 -0
  49. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/algo_benchmarks.rs +0 -0
  50. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/backend_comparison.rs +0 -0
  51. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/bench_utils.rs +0 -0
  52. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/bfs.rs +0 -0
  53. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/cold_cache.rs +0 -0
  54. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/comparative_benchmark.rs +0 -0
  55. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/comprehensive_performance.rs +0 -0
  56. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/compression_benchmark.rs +0 -0
  57. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/concurrent_access.rs +0 -0
  58. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/connection_pool.rs +0 -0
  59. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/graph_generators.rs +0 -0
  60. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/graph_theory_benchmarks.rs +0 -0
  61. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/hnsw.rs +0 -0
  62. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/hnsw_multilayer.rs +0 -0
  63. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/insert.rs +0 -0
  64. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/k_hop.rs +0 -0
  65. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/memory_profiling.rs +0 -0
  66. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/mvcc_benchmarks.rs +0 -0
  67. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/native_disk_io.rs +0 -0
  68. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/parallel_bfs.rs +0 -0
  69. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/read_path_benchmarks.rs +0 -0
  70. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/real_datasets.rs +0 -0
  71. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/regression_memory.rs +0 -0
  72. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/regression_non_chain_patterns.rs +0 -0
  73. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/regression_pubsub_memory.rs +0 -0
  74. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/regression_pubsub_non_chain.rs +0 -0
  75. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/regression_pubsub_write_cost.rs +0 -0
  76. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/regression_write_cost.rs +0 -0
  77. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/sqlite_v3_comparison.rs +0 -0
  78. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/v3_algorithm_benchmarks.rs +0 -0
  79. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/v3_backend_benchmarks.rs +0 -0
  80. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/benches/wal_recovery_benchmarks.rs +0 -0
  81. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/clippy.toml +0 -0
  82. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/core.d +0 -0
  83. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/debug_test.rs +0 -0
  84. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/HNSW_DEVELOPMENT_RULES.md +0 -0
  85. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/HNSW_VECTOR_INTEGRATION_FUTURE_ROADMAP.md +0 -0
  86. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/SEQUENTIAL_IO_PERFORMANCE.md +0 -0
  87. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/WAL_MODE_IMPLEMENTATION_GUIDE.md +0 -0
  88. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/phase-40-benchmark-report.md +0 -0
  89. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/phase10_performance_tuning.md +0 -0
  90. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/phase11_native_perf_plan.md +0 -0
  91. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/phase12_optimization_plan.md +0 -0
  92. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/phase14_step9_khop_corruption_codebase_mapping.md +0 -0
  93. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/phase29_step7_mmap_preaudit_notes.md +0 -0
  94. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/phase5_real_adjacency.md +0 -0
  95. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/phase6_implementation_status.md +0 -0
  96. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/phase6_native_graphbackend_plan.md +0 -0
  97. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/phase7_native_backend_refactor.md +0 -0
  98. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/docs/superpowers/plans/2026-04-23-task-1-analysis.md +0 -0
  99. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/algo_benchmark.rs +0 -0
  100. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/basic_functionality_test.rs +0 -0
  101. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/batch_bench.rs +0 -0
  102. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/batch_stress_test.rs +0 -0
  103. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/bench_parallel_bfs.rs +0 -0
  104. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/block_locality_benchmark.rs +0 -0
  105. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/cache_capacity_benchmark.rs +0 -0
  106. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/cache_clone_forensics.rs +0 -0
  107. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/cache_perf_test.rs +0 -0
  108. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/cold_path_decomposition.rs +0 -0
  109. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/compression_analysis.rs +0 -0
  110. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/compression_detailed.rs +0 -0
  111. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/compression_diagnostics.rs +0 -0
  112. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/crash_test_child.rs +0 -0
  113. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/debug_buffer_error.rs +0 -0
  114. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/get_node_cache_sweep.rs +0 -0
  115. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/phase53_1_execution.rs +0 -0
  116. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/phase55_simple_benchmark.rs +0 -0
  117. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/reopen_corruption_repro.rs +0 -0
  118. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_100k.rs +0 -0
  119. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_adaptive_pages.rs +0 -0
  120. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_allocator_startup.rs +0 -0
  121. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_batch_simple.rs +0 -0
  122. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_binary_search.rs +0 -0
  123. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_btree_100k.rs +0 -0
  124. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_cache_warm.rs +0 -0
  125. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_chunked_bfs.rs +0 -0
  126. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_delta_encoding.rs +0 -0
  127. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_direct_backend_benchmark.rs +0 -0
  128. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_direct_edgestore.rs +0 -0
  129. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_edge_store_direct.rs +0 -0
  130. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_edgestore_perf.rs +0 -0
  131. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_index_restore.rs +0 -0
  132. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_index_staleness.rs +0 -0
  133. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_lazy_decode.rs +0 -0
  134. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_lock_overhead.rs +0 -0
  135. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_native_edge.rs +0 -0
  136. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_neighbors_cache.rs +0 -0
  137. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_neighbors_detailed.rs +0 -0
  138. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_neighbors_profile.rs +0 -0
  139. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_open_detailed_timing.rs +0 -0
  140. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_open_roundtrip.rs +0 -0
  141. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_open_stage_timing.rs +0 -0
  142. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_performance_comparison.rs +0 -0
  143. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_rwlock_overhead.rs +0 -0
  144. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_sqlite_neighbors_perf.rs +0 -0
  145. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_v3_neighbors_perf.rs +0 -0
  146. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/test_vec_clone.rs +0 -0
  147. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/v3_forensic_page_analysis.rs +0 -0
  148. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/v3_forensics_example.rs +0 -0
  149. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/v3_get_node_profile.rs +0 -0
  150. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/v3_offset_forensic.rs +0 -0
  151. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/v3_perf_test.rs +0 -0
  152. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/v3_readonly_profile.rs +0 -0
  153. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/examples/v3_reopen_verify.rs +0 -0
  154. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/libtest_syntax.rlib +0 -0
  155. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/manual.md +0 -0
  156. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/snapshot_export/snapshot_1766284406.v2 +0 -0
  157. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/snapshot_export/snapshot_1766284420.v2 +0 -0
  158. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/sqlitegraph_bench.json +0 -0
  159. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/backend/centrality.rs +0 -0
  160. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/backend/graph_ops.rs +0 -0
  161. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/backend/mod.rs +0 -0
  162. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/backend/traversal.rs +0 -0
  163. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/call_graph_analysis.rs +0 -0
  164. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/centrality.rs +0 -0
  165. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/community.rs +0 -0
  166. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/control_dependence.rs +0 -0
  167. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/critical_path.rs +0 -0
  168. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/cut_partition.rs +0 -0
  169. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/cycle_basis.rs +0 -0
  170. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/dominance_frontiers.rs +0 -0
  171. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/dominators.rs +0 -0
  172. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/graph_diff.rs +0 -0
  173. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/graph_rewriting.rs +0 -0
  174. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/graph_similarity.rs +0 -0
  175. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/mod.rs +0 -0
  176. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/natural_loops.rs +0 -0
  177. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/observability.rs +0 -0
  178. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/path_enumeration.rs +0 -0
  179. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/post_dominators.rs +0 -0
  180. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/program_slicing.rs +0 -0
  181. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/reachability.rs +0 -0
  182. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/scc.rs +0 -0
  183. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/structure.rs +0 -0
  184. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/subgraph_isomorphism.rs +0 -0
  185. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/taint_analysis.rs +0 -0
  186. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/tests.rs +0 -0
  187. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/topological_sort.rs +0 -0
  188. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/transitive_closure.rs +0 -0
  189. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/transitive_reduction.rs +0 -0
  190. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/algo/wcc.rs +0 -0
  191. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/api_ergonomics.rs +0 -0
  192. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/constants.rs +0 -0
  193. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/cpu_tuning.rs +0 -0
  194. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/mod.rs +0 -0
  195. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/types/aliases.rs +0 -0
  196. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/types/cpu_profile.rs +0 -0
  197. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/types/errors.rs +0 -0
  198. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/types/flags.rs +0 -0
  199. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/types/kv_types.rs +0 -0
  200. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/types/mod.rs +0 -0
  201. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/types/utils.rs +0 -0
  202. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/algorithm/mod.rs +0 -0
  203. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/algorithm/parallel_bfs.rs +0 -0
  204. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/allocator.rs +0 -0
  205. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/backend.rs +0 -0
  206. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/btree.rs +0 -0
  207. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/compact_edge_record.rs +0 -0
  208. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/compression/delta.rs +0 -0
  209. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/compression/edge_delta.rs +0 -0
  210. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/compression/mod.rs +0 -0
  211. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/compression/varint.rs +0 -0
  212. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/constants.rs +0 -0
  213. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/edge_compat.rs +0 -0
  214. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/file_coordinator.rs +0 -0
  215. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/forensics.rs +0 -0
  216. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/header.rs +0 -0
  217. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/index/mod.rs +0 -0
  218. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/index/page.rs +0 -0
  219. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/index_persistence.rs +0 -0
  220. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/kind_index.rs +0 -0
  221. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/kv_store/mod.rs +0 -0
  222. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/kv_store/store.rs +0 -0
  223. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/kv_store/types.rs +0 -0
  224. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/lazy_init_tests.rs +0 -0
  225. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/mod.rs +0 -0
  226. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/name_index.rs +0 -0
  227. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/node/block_cache.rs +0 -0
  228. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/node/cache.rs +0 -0
  229. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/node/mod.rs +0 -0
  230. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/node/page.rs +0 -0
  231. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/node/record.rs +0 -0
  232. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/node/store.rs +0 -0
  233. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/node/tests.rs +0 -0
  234. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/pubsub/mod.rs +0 -0
  235. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/pubsub/publisher.rs +0 -0
  236. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/pubsub/types.rs +0 -0
  237. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/storage/adaptive_page.rs +0 -0
  238. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/storage/media_detector.rs +0 -0
  239. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/storage/mod.rs +0 -0
  240. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/string_table/mod.rs +0 -0
  241. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/string_table/table.rs +0 -0
  242. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/string_table/tests.rs +0 -0
  243. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/tests/mod.rs +0 -0
  244. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/wal.rs +0 -0
  245. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/native/v3/write_batch.rs +0 -0
  246. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/sqlite/helpers.rs +0 -0
  247. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/sqlite/impl_.rs +0 -0
  248. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/sqlite/kv_tests.rs +0 -0
  249. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/sqlite/mod.rs +0 -0
  250. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/sqlite/pubsub_tests.rs +0 -0
  251. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend/sqlite/types.rs +0 -0
  252. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend.rs +0 -0
  253. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/backend_selector.rs +0 -0
  254. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/bench_gates.rs +0 -0
  255. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/bench_meta.rs +0 -0
  256. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/bench_regression.rs +0 -0
  257. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/bench_utils.rs +0 -0
  258. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/bfs.rs +0 -0
  259. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/cache.rs +0 -0
  260. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/client.rs +0 -0
  261. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/config/factory.rs +0 -0
  262. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/config/graph_config.rs +0 -0
  263. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/config/kinds.rs +0 -0
  264. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/config/mod.rs +0 -0
  265. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/config/native.rs +0 -0
  266. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/config/sqlite.rs +0 -0
  267. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/dependency_monitor.rs +0 -0
  268. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/dsl.rs +0 -0
  269. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/errors.rs +0 -0
  270. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/fault_injection.rs +0 -0
  271. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/adjacency.rs +0 -0
  272. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/core.rs +0 -0
  273. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/edge_ops.rs +0 -0
  274. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/entity_ops.rs +0 -0
  275. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/metrics/instrumented.rs +0 -0
  276. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/metrics/metrics_core.rs +0 -0
  277. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/metrics/metrics_snapshot.rs +0 -0
  278. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/metrics/mod.rs +0 -0
  279. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/metrics/statement_tracker.rs +0 -0
  280. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/metrics/utils.rs +0 -0
  281. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/metrics_schema.rs +0 -0
  282. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/mod.rs +0 -0
  283. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/pattern_matching.rs +0 -0
  284. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/pool.rs +0 -0
  285. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/snapshot.rs +0 -0
  286. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph/types.rs +0 -0
  287. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/graph_opt.rs +0 -0
  288. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/batch_filter.rs +0 -0
  289. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/builder.rs +0 -0
  290. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/config.rs +0 -0
  291. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/distance_functions.rs +0 -0
  292. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/distance_metric.rs +0 -0
  293. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/errors.rs +0 -0
  294. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/index.rs +0 -0
  295. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/index_internal.rs +0 -0
  296. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/index_persist.rs +0 -0
  297. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/layer.rs +0 -0
  298. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/mod.rs +0 -0
  299. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/multilayer.rs +0 -0
  300. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/neighborhood.rs +0 -0
  301. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/serialization.rs +0 -0
  302. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/simd.rs +0 -0
  303. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/storage.rs +0 -0
  304. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/v3_storage.rs +0 -0
  305. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/hnsw/v3_storage_tests.rs +0 -0
  306. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/index.rs +0 -0
  307. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/inference/engine.rs +0 -0
  308. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/inference/mod.rs +0 -0
  309. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/inference/sampling.rs +0 -0
  310. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/inference/simd.rs +0 -0
  311. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/introspection.rs +0 -0
  312. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/lib.rs +0 -0
  313. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/multi_hop.rs +0 -0
  314. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/mvcc.rs +0 -0
  315. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/pattern.rs +0 -0
  316. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/pattern_engine/matcher.rs +0 -0
  317. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/pattern_engine/mod.rs +0 -0
  318. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/pattern_engine/pattern.rs +0 -0
  319. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/pattern_engine/property.rs +0 -0
  320. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/pattern_engine/query.rs +0 -0
  321. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/pattern_engine/tests.rs +0 -0
  322. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/pattern_engine_cache/edge_validation.rs +0 -0
  323. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/pattern_engine_cache/fast_path_detection.rs +0 -0
  324. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/pattern_engine_cache/fast_path_execution.rs +0 -0
  325. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/pattern_engine_cache/mod.rs +0 -0
  326. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/pattern_engine_cache/tests.rs +0 -0
  327. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/progress.rs +0 -0
  328. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/query.rs +0 -0
  329. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/query_cache.rs +0 -0
  330. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/reasoning.rs +0 -0
  331. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/recovery.rs +0 -0
  332. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/schema.rs +0 -0
  333. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/src/snapshot.rs +0 -0
  334. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/acid_regression_test.rs +0 -0
  335. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/acid_snapshot_test.rs +0 -0
  336. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/algo_tests.rs +0 -0
  337. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/backend_selector_tests.rs +0 -0
  338. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/bench_data_tests.rs +0 -0
  339. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/bench_gate_tests.rs +0 -0
  340. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/bench_gates_tests.rs +0 -0
  341. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/bench_meta_tests.rs +0 -0
  342. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/bench_report_tests.rs +0 -0
  343. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/benchmark_isolation_test.rs +0 -0
  344. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/bfs_tests.rs +0 -0
  345. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/bincode_compatibility_test.rs +0 -0
  346. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/cache_effectiveness_tests.rs +0 -0
  347. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/cache_tests.rs +0 -0
  348. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/check_write_path.rs +0 -0
  349. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/cluster_offset_corruption_regression.rs +0 -0
  350. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/cold_path_forensics.rs +0 -0
  351. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/debug_file_size.rs +0 -0
  352. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/debug_index_rebuilding.rs +0 -0
  353. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/debug_overflow.rs +0 -0
  354. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/debug_scenario_c.rs +0 -0
  355. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/deterministic_index_tests.rs +0 -0
  356. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/direct_file_read_corruption_test.rs +0 -0
  357. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/doc_tests.rs +0 -0
  358. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/edge_corruption_minimal.rs +0 -0
  359. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/edge_corruption_repro.rs +0 -0
  360. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/edge_insertion_corruption_test.rs +0 -0
  361. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/edge_tests.rs +0 -0
  362. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/entity_tests.rs +0 -0
  363. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/file_extension_debug.rs +0 -0
  364. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/fuzz_common.rs +0 -0
  365. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/get_node_forensics.rs +0 -0
  366. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/graph_node_existence_enforcement.rs +0 -0
  367. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/graph_opt_tests.rs +0 -0
  368. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/helpers/mod.rs +0 -0
  369. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/hnsw_persistence_tests.rs +0 -0
  370. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/index_persistence_integration.rs +0 -0
  371. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/index_persistence_validation.rs +0 -0
  372. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/index_tests.rs +0 -0
  373. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/instrumentation_tests.rs +0 -0
  374. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/integration_tests.rs +0 -0
  375. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/isolate_open_bug.rs +0 -0
  376. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/json_parsing_diagnostics.rs +0 -0
  377. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/kv_durability_tests.rs +0 -0
  378. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/lib_api_smoke_tests.rs +0 -0
  379. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/multi_hop_tests.rs +0 -0
  380. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/multi_node_corruption_regression.rs +0 -0
  381. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/mvcc_baseline_tests.rs +0 -0
  382. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/mvcc_concurrent_tests.rs +0 -0
  383. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/mvcc_edge_case_tests.rs +0 -0
  384. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/mvcc_snapshot_tests.rs +0 -0
  385. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/mvcc_wal_tests.rs +0 -0
  386. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/native_edge_insertion_regression.rs +0 -0
  387. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/node_overflow_forensics.rs +0 -0
  388. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/node_read_forensics_test.rs +0 -0
  389. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/node_slot_transaction_persistence.rs +0 -0
  390. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/oom_reproduction_test.rs +0 -0
  391. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/page_42_debug.rs +0 -0
  392. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/page_write_debug.rs +0 -0
  393. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/pattern_cache_fastpath_tests.rs +0 -0
  394. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/pattern_engine_tests.rs +0 -0
  395. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/pattern_tests.rs +0 -0
  396. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/perf_gate_tests.rs +0 -0
  397. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/perf_gate_v32_tests.rs +0 -0
  398. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/phase32_cluster_pipeline_reconstruction_tests_clean.rs +0 -0
  399. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/phase44_2_cluster_size_contract_tests.rs +0 -0
  400. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/phase64_node_count_durability_regression.rs +0 -0
  401. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/phase65_cluster_size_corruption_regression.rs +0 -0
  402. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/phase73_node_count_corruption_capture.rs +0 -0
  403. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/query_cache_performance_tests.rs +0 -0
  404. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/query_cache_tests.rs +0 -0
  405. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/query_tests.rs +0 -0
  406. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/recovery_tests.rs +0 -0
  407. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/regression_concurrent_traversal.rs +0 -0
  408. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/reopen_corruption_investigation.rs +0 -0
  409. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/reopen_integration_test.rs +0 -0
  410. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/rowid_tests.rs +0 -0
  411. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/schema_tests.rs +0 -0
  412. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/snapshot_isolation_tests.rs +0 -0
  413. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/sqlite_reopen_tests.rs +0 -0
  414. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/sqlite_snapshot_tests.rs +0 -0
  415. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/test_10k_bug_reproduction.rs +0 -0
  416. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/transaction_begin_corruption_proof.rs +0 -0
  417. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/unsafe_invariants_tests.rs +0 -0
  418. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_algorithm_tests.rs +0 -0
  419. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_block_locality_tests.rs +0 -0
  420. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_btree_forensics.rs +0 -0
  421. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_check_nodepages.rs +0 -0
  422. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_dump_page_headers.rs +0 -0
  423. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_edge_durability_tdd.rs +0 -0
  424. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_file_write_test.rs +0 -0
  425. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_focused_perf.rs +0 -0
  426. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_forensics_test.rs +0 -0
  427. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_header_forensics.rs +0 -0
  428. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_insert_read_forensics.rs +0 -0
  429. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_integrity_check.rs +0 -0
  430. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_kind_index_tests.rs +0 -0
  431. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_name_index_tests.rs +0 -0
  432. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_page_ownership_forensics.rs +0 -0
  433. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_persistence_100.rs +0 -0
  434. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_query_truth_tests.rs +0 -0
  435. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_regression_sweep.rs +0 -0
  436. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_reopen_durability.rs +0 -0
  437. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_sync_fix_validation.rs +0 -0
  438. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/v3_verify_file_persistence.rs +0 -0
  439. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/wal_mode_default_tests.rs +0 -0
  440. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/wal_tuning_tests.rs +0 -0
  441. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-core/tests/write_buffer_coherence_regression.rs +0 -0
  442. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-py/.gitignore +0 -0
  443. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-py/tests/test_algo.py +0 -0
  444. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-py/tests/test_basic.py +0 -0
  445. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-py/tests/test_crud.py +0 -0
  446. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-py/tests/test_errors.py +0 -0
  447. {sqlitegraph-0.1.0 → sqlitegraph-0.1.1}/sqlitegraph-py/tests/test_hnsw.py +0 -0
@@ -1387,7 +1387,7 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
1387
1387
 
1388
1388
  [[package]]
1389
1389
  name = "sqlitegraph"
1390
- version = "2.2.4"
1390
+ version = "2.2.5"
1391
1391
  dependencies = [
1392
1392
  "ahash",
1393
1393
  "arc-swap",
@@ -1418,7 +1418,7 @@ dependencies = [
1418
1418
 
1419
1419
  [[package]]
1420
1420
  name = "sqlitegraph-cli"
1421
- version = "2.1.4"
1421
+ version = "2.1.5"
1422
1422
  dependencies = [
1423
1423
  "anyhow",
1424
1424
  "clap",
@@ -1428,7 +1428,7 @@ dependencies = [
1428
1428
 
1429
1429
  [[package]]
1430
1430
  name = "sqlitegraph-py"
1431
- version = "0.1.0"
1431
+ version = "0.1.1"
1432
1432
  dependencies = [
1433
1433
  "ndarray 0.16.1",
1434
1434
  "numpy",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlitegraph
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
6
6
  Classifier: Programming Language :: Python :: 3
@@ -54,6 +54,23 @@ g.add_edge(alice, order, "placed")
54
54
  print(g.neighbors(alice))
55
55
  ```
56
56
 
57
- A polished README with vector-search and code-metadata examples will land
58
- alongside the first PyPI release.
57
+ ## Examples
58
+
59
+ The [`examples/`](./examples/) directory contains runnable scripts:
60
+
61
+ | Example | What it shows |
62
+ |---------|---------------|
63
+ | [`01_basic_crud.py`](./examples/01_basic_crud.py) | Nodes, edges, update, delete, query by kind/pattern, degrees |
64
+ | [`02_graph_algorithms.py`](./examples/02_graph_algorithms.py) | BFS, k-hop, shortest path, PageRank, Louvain communities, connected components |
65
+ | [`03_vector_search.py`](./examples/03_vector_search.py) | HNSW index creation, insert, search, bulk insert, index listing |
66
+ | [`04_social_network.py`](./examples/04_social_network.py) | Realistic network: influencers (PageRank), communities, connection paths, mutual follows |
67
+ | [`05_file_backed.py`](./examples/05_file_backed.py) | Persistent `Graph.open(path)`, checkpoint, reopen, cleanup |
68
+
69
+ Run any example from the repo root:
70
+
71
+ ```bash
72
+ cd sqlitegraph-py
73
+ source .venv/bin/activate
74
+ python examples/01_basic_crud.py
75
+ ```
59
76
 
@@ -0,0 +1,44 @@
1
+ # sqlitegraph
2
+
3
+ Python bindings to the [`sqlitegraph`](https://crates.io/crates/sqlitegraph)
4
+ embedded graph database. Storage, graph algorithms, and HNSW vector search
5
+ run in a reviewed Rust core; this package is the Pythonic surface.
6
+
7
+ > Alpha — API subject to change before 1.0.
8
+
9
+ ## Install
10
+
11
+ pip install sqlitegraph
12
+
13
+ ## Quick start
14
+
15
+ ```python
16
+ from sqlitegraph import Graph
17
+
18
+ g = Graph.open_in_memory()
19
+ alice = g.add_node(kind="User", name="Alice", data={"age": 30})
20
+ order = g.add_node(kind="Order", name="Order-123")
21
+ g.add_edge(alice, order, "placed")
22
+
23
+ print(g.neighbors(alice))
24
+ ```
25
+
26
+ ## Examples
27
+
28
+ The [`examples/`](./examples/) directory contains runnable scripts:
29
+
30
+ | Example | What it shows |
31
+ |---------|---------------|
32
+ | [`01_basic_crud.py`](./examples/01_basic_crud.py) | Nodes, edges, update, delete, query by kind/pattern, degrees |
33
+ | [`02_graph_algorithms.py`](./examples/02_graph_algorithms.py) | BFS, k-hop, shortest path, PageRank, Louvain communities, connected components |
34
+ | [`03_vector_search.py`](./examples/03_vector_search.py) | HNSW index creation, insert, search, bulk insert, index listing |
35
+ | [`04_social_network.py`](./examples/04_social_network.py) | Realistic network: influencers (PageRank), communities, connection paths, mutual follows |
36
+ | [`05_file_backed.py`](./examples/05_file_backed.py) | Persistent `Graph.open(path)`, checkpoint, reopen, cleanup |
37
+
38
+ Run any example from the repo root:
39
+
40
+ ```bash
41
+ cd sqlitegraph-py
42
+ source .venv/bin/activate
43
+ python examples/01_basic_crud.py
44
+ ```
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "sqlitegraph"
7
- version = "0.1.0"
7
+ version = "0.1.1"
8
8
  description = "Embedded graph database with HNSW vector search — Python bindings to the sqlitegraph Rust crate."
9
9
  license = { text = "GPL-3.0-only" }
10
10
  authors = [{ name = "Luiz Spies" }]
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "sqlitegraph"
3
- version = "2.2.4"
3
+ version = "2.2.5"
4
4
  edition = "2024"
5
5
  description = "Embedded graph database with full ACID transactions, HNSW vector search, dual backend support, and comprehensive graph algorithms library"
6
6
  license = "GPL-3.0"
@@ -526,10 +526,11 @@ impl crate::SqliteGraph {
526
526
  .map_err(|e| crate::SqliteGraphError::invalid_input(format!("Failed to get index_id: {}", e)))?
527
527
  .ok_or_else(|| crate::SqliteGraphError::invalid_input("Failed to get index_id after saving metadata".to_string()))?;
528
528
 
529
- // Get database path to open a new connection for storage
529
+ // Get database path to open a new connection for storage.
530
+ // `database_list` columns: 0=seq, 1=name ("main"), 2=file (actual path).
530
531
  let db_path = conn_ref.pragma_query_value(None, "database_list", |row| {
531
- let name: String = row.get(1)?;
532
- Ok(name)
532
+ let file: String = row.get(2)?;
533
+ Ok(file)
533
534
  }).map_err(|e| crate::SqliteGraphError::invalid_input(format!("Failed to get database path: {}", e)))?;
534
535
 
535
536
  let conn_for_storage = rusqlite::Connection::open(&db_path)
@@ -3,6 +3,16 @@
3
3
  This file tracks releases of the `sqlitegraph` package on PyPI. The Rust
4
4
  crate of the same name has its own changelog at the repository root.
5
5
 
6
+ ## [0.1.1] - 2026-05-15
7
+
8
+ ### Fixed
9
+ - **`create_hnsw_index` now calls `hnsw_index_persistent`** — Previously the
10
+ Python binding called the non-persistent `hnsw_index()`, so vector indexes
11
+ created from Python were lost when the `Graph` object was dropped. Now it
12
+ calls `hnsw_index_persistent()`, matching the expected durability contract.
13
+ Requires `sqlitegraph` (Rust) **>= 2.2.5** (the release that fixes the
14
+ underlying `database_list` column read).
15
+
6
16
  ## [0.1.0] — unreleased
7
17
 
8
18
  ### Added
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "sqlitegraph-py"
3
- version = "0.1.0"
3
+ version = "0.1.1"
4
4
  edition = "2021"
5
5
  description = "Python bindings for sqlitegraph via PyO3"
6
6
  license = "GPL-3.0-only"
@@ -0,0 +1,44 @@
1
+ # sqlitegraph
2
+
3
+ Python bindings to the [`sqlitegraph`](https://crates.io/crates/sqlitegraph)
4
+ embedded graph database. Storage, graph algorithms, and HNSW vector search
5
+ run in a reviewed Rust core; this package is the Pythonic surface.
6
+
7
+ > Alpha — API subject to change before 1.0.
8
+
9
+ ## Install
10
+
11
+ pip install sqlitegraph
12
+
13
+ ## Quick start
14
+
15
+ ```python
16
+ from sqlitegraph import Graph
17
+
18
+ g = Graph.open_in_memory()
19
+ alice = g.add_node(kind="User", name="Alice", data={"age": 30})
20
+ order = g.add_node(kind="Order", name="Order-123")
21
+ g.add_edge(alice, order, "placed")
22
+
23
+ print(g.neighbors(alice))
24
+ ```
25
+
26
+ ## Examples
27
+
28
+ The [`examples/`](./examples/) directory contains runnable scripts:
29
+
30
+ | Example | What it shows |
31
+ |---------|---------------|
32
+ | [`01_basic_crud.py`](./examples/01_basic_crud.py) | Nodes, edges, update, delete, query by kind/pattern, degrees |
33
+ | [`02_graph_algorithms.py`](./examples/02_graph_algorithms.py) | BFS, k-hop, shortest path, PageRank, Louvain communities, connected components |
34
+ | [`03_vector_search.py`](./examples/03_vector_search.py) | HNSW index creation, insert, search, bulk insert, index listing |
35
+ | [`04_social_network.py`](./examples/04_social_network.py) | Realistic network: influencers (PageRank), communities, connection paths, mutual follows |
36
+ | [`05_file_backed.py`](./examples/05_file_backed.py) | Persistent `Graph.open(path)`, checkpoint, reopen, cleanup |
37
+
38
+ Run any example from the repo root:
39
+
40
+ ```bash
41
+ cd sqlitegraph-py
42
+ source .venv/bin/activate
43
+ python examples/01_basic_crud.py
44
+ ```
@@ -0,0 +1,71 @@
1
+ """Basic CRUD operations with sqlitegraph.
2
+
3
+ Demonstrates: open, add_node, get_node, update_node, delete_node,
4
+ add_edge, get_edge, delete_edge, neighbors, node_degree.
5
+ """
6
+
7
+ from sqlitegraph import Graph
8
+
9
+ # Open an in-memory graph (fast, no persistence)
10
+ g = Graph.open_in_memory()
11
+ print("=== Basic CRUD ===\n")
12
+
13
+ # -- Nodes --
14
+
15
+ alice = g.add_node(kind="User", name="Alice", data={"age": 30, "city": "Berlin"})
16
+ bob = g.add_node(kind="User", name="Bob", data={"age": 25, "city": "Paris"})
17
+ project = g.add_node(kind="Project", name="GraphDB", data={"status": "active"})
18
+ company = g.add_node(kind="Company", name="TechCorp", data={"founded": 2020})
19
+
20
+ print(f"Created nodes: Alice={alice}, Bob={bob}, Project={project}, Company={company}")
21
+
22
+ # Read a node back
23
+ node = g.get_node(alice)
24
+ print(f"\nAlice's node: {node}")
25
+
26
+ # Update a node
27
+ g.update_node(bob, kind="User", name="Bob", data={"age": 26, "city": "Paris", "promoted": True})
28
+ updated = g.get_node(bob)
29
+ print(f"Updated Bob: {updated}")
30
+
31
+ # -- Edges --
32
+
33
+ # Alice works_on Project
34
+ e1 = g.add_edge(alice, project, "works_on", data={"role": "developer"})
35
+ # Project belongs_to Company
36
+ e2 = g.add_edge(project, company, "belongs_to", data={"ownership": 0.75})
37
+ # Alice employed_by Company
38
+ e3 = g.add_edge(alice, company, "employed_by", data={"department": "engineering"})
39
+
40
+ print(f"\nCreated edges: works_on={e1}, belongs_to={e2}, employed_by={e3}")
41
+
42
+ # Read an edge back
43
+ edge = g.get_edge(e1)
44
+ print(f"Edge {e1}: {edge['edge_type']} from {edge['from_id']} to {edge['to_id']}")
45
+
46
+ # -- Neighbors & degrees --
47
+
48
+ print(f"\nAlice's outgoing neighbors: {g.neighbors(alice, direction='outgoing')}")
49
+ print(f"Alice's incoming neighbors: {g.neighbors(alice, direction='incoming')}")
50
+ print(f"Alice's all neighbors: {g.neighbors(alice)}")
51
+
52
+ in_deg, out_deg = g.node_degree(alice)
53
+ print(f"\nAlice's degree: in={in_deg}, out={out_deg}")
54
+
55
+ # -- Query by kind / pattern --
56
+
57
+ users = g.nodes_by_kind("User")
58
+ print(f"\nAll users: {users}")
59
+
60
+ matches = g.nodes_by_name_pattern("Al*")
61
+ print(f"Names matching 'Al*': {matches}")
62
+
63
+ # -- Delete --
64
+
65
+ # Delete an edge
66
+ g.delete_edge(e3)
67
+ print(f"\nDeleted edge {e3}. Alice's neighbors now: {g.neighbors(alice)}")
68
+
69
+ # Delete a node (also deletes attached edges)
70
+ g.delete_node(bob)
71
+ print(f"Deleted Bob. Remaining node IDs: {g.node_ids()}")
@@ -0,0 +1,99 @@
1
+ """Graph algorithms with sqlitegraph.
2
+
3
+ Demonstrates: bfs, k_hop, shortest_path, pagerank,
4
+ louvain_communities, connected_components.
5
+ """
6
+
7
+ from sqlitegraph import Graph
8
+
9
+ g = Graph.open_in_memory()
10
+ print("=== Graph Algorithms ===\n")
11
+
12
+ # Build a sample graph: two disjoint triangles plus a bridge
13
+ # Triangle 1: a-b-c-a
14
+ # Triangle 2: d-e-f-d
15
+ # Bridge: c-d
16
+
17
+ a = g.add_node(kind="Node", name="a")
18
+ b = g.add_node(kind="Node", name="b")
19
+ c = g.add_node(kind="Node", name="c")
20
+ d = g.add_node(kind="Node", name="d")
21
+ e = g.add_node(kind="Node", name="e")
22
+ f = g.add_node(kind="Node", name="f")
23
+
24
+ for u, v in [(a, b), (b, c), (c, a)]:
25
+ g.add_edge(u, v, "link")
26
+ for u, v in [(d, e), (e, f), (f, d)]:
27
+ g.add_edge(u, v, "link")
28
+ g.add_edge(c, d, "bridge")
29
+
30
+ print("Graph: two triangles linked by a bridge (c-d)")
31
+
32
+ # -- BFS --
33
+
34
+ reached = g.bfs(a, depth=2)
35
+ print(f"\nBFS from a (depth=2): {sorted(reached)}")
36
+
37
+ # -- k-hop --
38
+
39
+ khop = g.k_hop(a, depth=2)
40
+ print(f"k-hop from a (depth=2): {sorted(khop)}")
41
+
42
+ # -- Shortest path --
43
+
44
+ path = g.shortest_path(a, f)
45
+ print(f"\nShortest path a -> f: {path}")
46
+
47
+ path = g.shortest_path(a, e)
48
+ print(f"Shortest path a -> e: {path}")
49
+
50
+ # No connection possible if we delete the bridge
51
+ g.delete_edge(g.get_edge(7)["id"] if False else 7) # edge IDs are 1-based
52
+ # Actually let's just show unreachable
53
+ isolated = g.add_node(kind="Node", name="isolated")
54
+ no_path = g.shortest_path(a, isolated)
55
+ print(f"Shortest path a -> isolated (no edge): {no_path}")
56
+
57
+ # -- PageRank --
58
+
59
+ # Build a directed cycle for PageRank: a->b->c->a
60
+ h = Graph.open_in_memory()
61
+ na = h.add_node(kind="Page", name="A")
62
+ nb = h.add_node(kind="Page", name="B")
63
+ nc = h.add_node(kind="Page", name="C")
64
+ h.add_edge(na, nb, "links")
65
+ h.add_edge(nb, nc, "links")
66
+ h.add_edge(nc, na, "links")
67
+
68
+ scores = h.pagerank(damping=0.85, iterations=20)
69
+ print("\n--- PageRank (cycle of 3) ---")
70
+ for nid, score in scores:
71
+ node = h.get_node(nid)
72
+ print(f" {node['name']}: {score:.6f}")
73
+
74
+ # -- Louvain Communities --
75
+
76
+ communities = g.louvain_communities(max_iterations=10)
77
+ print("\n--- Louvain Communities ---")
78
+ print(f"Found {len(communities)} communities:")
79
+ for i, comm in enumerate(communities):
80
+ names = [g.get_node(nid)["name"] for nid in comm]
81
+ print(f" Community {i}: {names}")
82
+
83
+ # -- Connected Components --
84
+
85
+ # Add an isolated pair to the first graph
86
+ g2 = Graph.open_in_memory()
87
+ x = g2.add_node(kind="Node", name="x")
88
+ y = g2.add_node(kind="Node", name="y")
89
+ z = g2.add_node(kind="Node", name="z")
90
+ g2.add_edge(x, y, "link") # component 1
91
+ # z is alone — but singletons aren't returned by connected_components
92
+ # unless they have self-loops, so this gives 1 component
93
+
94
+ components = g2.connected_components()
95
+ print("\n--- Connected Components ---")
96
+ print(f"Found {len(components)} component(s)")
97
+ for i, comp in enumerate(components):
98
+ names = [g2.get_node(nid)["name"] for nid in comp]
99
+ print(f" Component {i}: {names}")
@@ -0,0 +1,66 @@
1
+ """HNSW vector search with sqlitegraph.
2
+
3
+ Demonstrates: create_hnsw_index, insert_vector, search,
4
+ get_vector, vector_count, list_hnsw_indexes, get_hnsw_index.
5
+ """
6
+
7
+ from sqlitegraph import Graph
8
+
9
+ g = Graph.open_in_memory()
10
+ print("=== HNSW Vector Search ===\n")
11
+
12
+ # Create an HNSW index for 3-dimensional vectors using cosine similarity
13
+ idx = g.create_hnsw_index("embeddings", dimension=3, metric="cosine")
14
+ print(f"Created index: {idx.name()}")
15
+
16
+ # Insert some vectors
17
+ # These are simplified "document embeddings" — in practice you'd use
18
+ # an embedding model (e.g. sentence-transformers, OpenAI, etc.)
19
+
20
+ # "machine learning" direction
21
+ v_ml = idx.insert_vector([1.0, 0.8, 0.1])
22
+ # "deep learning" direction (similar to ML)
23
+ v_dl = idx.insert_vector([0.9, 0.85, 0.05])
24
+ # "baking" direction (unrelated)
25
+ v_bake = idx.insert_vector([0.1, 0.2, 1.0])
26
+ # "cooking" direction (similar to baking)
27
+ v_cook = idx.insert_vector([0.05, 0.15, 0.95])
28
+
29
+ print(f"Inserted vectors: ML={v_ml}, DL={v_dl}, Bake={v_bake}, Cook={v_cook}")
30
+ print(f"Total vectors in index: {idx.vector_count()}")
31
+
32
+ # Search for vectors similar to "machine learning"
33
+ query = [1.0, 0.9, 0.0] # close to ML/DL
34
+ top2 = idx.search(query, k=2)
35
+ print("\nSearch for [1.0, 0.9, 0.0] (top 2):")
36
+ for vid, distance in top2:
37
+ print(f" vector_id={vid}, distance={distance:.4f}")
38
+
39
+ # Search for vectors similar to "cooking/baking"
40
+ query2 = [0.0, 0.0, 1.0] # close to Bake/Cook
41
+ top2 = idx.search(query2, k=2)
42
+ print("\nSearch for [0.0, 0.0, 1.0] (top 2):")
43
+ for vid, distance in top2:
44
+ print(f" vector_id={vid}, distance={distance:.4f}")
45
+
46
+ # Retrieve a specific vector by ID
47
+ vec = idx.get_vector(v_ml)
48
+ print(f"\nVector {v_ml}: {vec}")
49
+
50
+ # List all indexes
51
+ print(f"\nAll HNSW indexes: {g.list_hnsw_indexes()}")
52
+
53
+ # Re-open the index by name
54
+ idx2 = g.get_hnsw_index("embeddings")
55
+ print(f"Re-opened index: {idx2.name()}, vectors: {idx2.vector_count()}")
56
+
57
+ # Bulk insert example
58
+ print("\n--- Bulk insert ---")
59
+ vectors = [
60
+ ([0.5, 0.5, 0.0], None),
61
+ ([0.6, 0.4, 0.0], {"tag": "ml"}),
62
+ ([0.0, 0.0, 0.8], {"tag": "cooking"}),
63
+ ]
64
+ bulk_ids = idx.bulk_insert_vectors(vectors)
65
+ print(f"Bulk inserted {len(bulk_ids)} vectors: {bulk_ids}")
66
+ print(f"Total vectors now: {idx.vector_count()}")
@@ -0,0 +1,99 @@
1
+ """Social network analysis with sqlitegraph.
2
+
3
+ A realistic example: model a small social network, find influencers
4
+ via PageRank, detect communities via Louvain, and find connection paths.
5
+ """
6
+
7
+ from sqlitegraph import Graph
8
+
9
+ g = Graph.open_in_memory()
10
+ print("=== Social Network Analysis ===\n")
11
+
12
+ # Create people
13
+ people = {
14
+ "alice": g.add_node(kind="Person", name="Alice", data={"role": "engineer"}),
15
+ "bob": g.add_node(kind="Person", name="Bob", data={"role": "designer"}),
16
+ "carol": g.add_node(kind="Person", name="Carol", data={"role": "manager"}),
17
+ "dave": g.add_node(kind="Person", name="Dave", data={"role": "engineer"}),
18
+ "eve": g.add_node(kind="Person", name="Eve", data={"role": "analyst"}),
19
+ "frank": g.add_node(kind="Person", name="Frank", data={"role": "intern"}),
20
+ "grace": g.add_node(kind="Person", name="Grace", data={"role": "cto"}),
21
+ }
22
+
23
+ # Create follows edges (directed: A follows B)
24
+ follows = [
25
+ ("alice", "bob"), # alice follows bob
26
+ ("alice", "carol"), # alice follows carol
27
+ ("bob", "carol"), # bob follows carol
28
+ ("carol", "grace"), # carol follows grace (the CTO)
29
+ ("dave", "alice"), # dave follows alice
30
+ ("dave", "bob"), # dave follows bob
31
+ ("eve", "carol"), # eve follows carol
32
+ ("frank", "alice"), # frank follows alice
33
+ ("frank", "dave"), # frank follows dave
34
+ ("grace", "carol"), # grace follows carol (mutual)
35
+ ]
36
+
37
+ for follower, followee in follows:
38
+ g.add_edge(people[follower], people[followee], "follows")
39
+
40
+ print("Social network created:")
41
+ print(f" People: {len(people)}")
42
+ print(f" Follows edges: {len(follows)}")
43
+
44
+ # -- Find influencers with PageRank --
45
+
46
+ scores = g.pagerank(damping=0.85, iterations=50)
47
+ print("\n--- Influencers (PageRank) ---")
48
+ # Sort by score descending
49
+ ranked = sorted(scores, key=lambda x: x[1], reverse=True)
50
+ for nid, score in ranked:
51
+ name = g.get_node(nid)["name"]
52
+ in_deg, out_deg = g.node_degree(nid)
53
+ print(f" {name:6s}: score={score:.4f} (in={in_deg}, out={out_deg})")
54
+
55
+ # -- Find communities --
56
+
57
+ communities = g.louvain_communities(max_iterations=10)
58
+ print("\n--- Communities (Louvain) ---")
59
+ print(f"Found {len(communities)} communities:")
60
+ for i, comm in enumerate(communities):
61
+ names = [g.get_node(nid)["name"] for nid in comm]
62
+ print(f" Community {i}: {', '.join(names)}")
63
+
64
+ # -- Find connection paths --
65
+
66
+ print("\n--- Connection Paths ---")
67
+ path = g.shortest_path(people["frank"], people["grace"])
68
+ if path:
69
+ names = [g.get_node(nid)["name"] for nid in path]
70
+ print(f" Frank -> Grace: {' -> '.join(names)}")
71
+ else:
72
+ print(" Frank -> Grace: no path")
73
+
74
+ path = g.shortest_path(people["eve"], people["dave"])
75
+ if path:
76
+ names = [g.get_node(nid)["name"] for nid in path]
77
+ print(f" Eve -> Dave: {' -> '.join(names)}")
78
+ else:
79
+ print(" Eve -> Dave: no path")
80
+
81
+ # -- Mutual follows --
82
+
83
+ print("\n--- Mutual Follows ---")
84
+ for name_a, nid_a in people.items():
85
+ for name_b, nid_b in people.items():
86
+ if name_a >= name_b:
87
+ continue
88
+ a_follows_b = nid_b in g.neighbors(nid_a, direction="outgoing")
89
+ b_follows_a = nid_a in g.neighbors(nid_b, direction="outgoing")
90
+ if a_follows_b and b_follows_a:
91
+ print(f" {name_a.title()} <-> {name_b.title()}")
92
+
93
+ # -- Who follows the CTO? --
94
+
95
+ grace_id = people["grace"]
96
+ followers_of_cto = g.neighbors(grace_id, direction="incoming")
97
+ print("\n--- Followers of Grace (CTO) ---")
98
+ for nid in followers_of_cto:
99
+ print(f" {g.get_node(nid)['name']}")
@@ -0,0 +1,56 @@
1
+ """Persistent file-backed graph with sqlitegraph.
2
+
3
+ Demonstrates: Graph.open(path), checkpoint, reopen, and data durability.
4
+ """
5
+
6
+ import os
7
+ import tempfile
8
+
9
+ from sqlitegraph import Graph
10
+
11
+ # Use a temporary file for the demo
12
+ db_path = os.path.join(tempfile.gettempdir(), "sqlitegraph_demo.db")
13
+ print("=== File-Backed Graph ===\n")
14
+ print(f"Database path: {db_path}\n")
15
+
16
+ # Clean up any previous demo file
17
+ if os.path.exists(db_path):
18
+ os.remove(db_path)
19
+
20
+ # -- Create and populate --
21
+
22
+ g = Graph.open(db_path)
23
+ print("Created file-backed graph.")
24
+
25
+ alice = g.add_node(kind="User", name="Alice", data={"age": 30})
26
+ bob = g.add_node(kind="User", name="Bob", data={"age": 25})
27
+ project = g.add_node(kind="Project", name="GraphDB")
28
+
29
+ g.add_edge(alice, project, "works_on")
30
+ g.add_edge(bob, project, "works_on")
31
+
32
+ print(f"Added {len(g.node_ids())} nodes and edges.")
33
+
34
+ # Checkpoint to ensure data is flushed
35
+ g.checkpoint()
36
+ print("Checkpoint complete.\n")
37
+
38
+ # -- Re-open and verify --
39
+
40
+ g2 = Graph.open(db_path)
41
+ print("Re-opened graph from disk.")
42
+
43
+ print(f"Node count: {len(g2.node_ids())}")
44
+ print(f"Nodes by kind 'User': {g2.nodes_by_kind('User')}")
45
+
46
+ # Retrieve Alice
47
+ users = g2.nodes_by_kind("User")
48
+ for uid in users:
49
+ node = g2.get_node(uid)
50
+ print(f" {node['name']}: {node['data']}")
51
+
52
+ # -- Clean up --
53
+
54
+ if os.path.exists(db_path):
55
+ os.remove(db_path)
56
+ print(f"\nCleaned up {db_path}")
@@ -379,7 +379,9 @@ impl Graph {
379
379
  let index_name = {
380
380
  let this = slf.borrow();
381
381
  let graph = this.backend.graph();
382
- let mut indexes = graph.hnsw_index(&name, config).map_err(into_pyerr)?;
382
+ let mut indexes = graph
383
+ .hnsw_index_persistent(&name, config)
384
+ .map_err(into_pyerr)?;
383
385
  let index = indexes
384
386
  .get_mut(&name)
385
387
  .ok_or_else(|| BackendError::new_err("Index not found after creation"))?;
@@ -1,27 +0,0 @@
1
- # sqlitegraph
2
-
3
- Python bindings to the [`sqlitegraph`](https://crates.io/crates/sqlitegraph)
4
- embedded graph database. Storage, graph algorithms, and HNSW vector search
5
- run in a reviewed Rust core; this package is the Pythonic surface.
6
-
7
- > Alpha — API subject to change before 1.0.
8
-
9
- ## Install
10
-
11
- pip install sqlitegraph
12
-
13
- ## Quick start
14
-
15
- ```python
16
- from sqlitegraph import Graph
17
-
18
- g = Graph.open_in_memory()
19
- alice = g.add_node(kind="User", name="Alice", data={"age": 30})
20
- order = g.add_node(kind="Order", name="Order-123")
21
- g.add_edge(alice, order, "placed")
22
-
23
- print(g.neighbors(alice))
24
- ```
25
-
26
- A polished README with vector-search and code-metadata examples will land
27
- alongside the first PyPI release.