[package]
edition = "2024"
name = "sqlitegraph"
version = "1.2.7"
build = false
exclude = [
"docs/internal/**",
".codemcp/**",
".splice-backup/**",
"benches/*.json",
"benches/*.txt",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Embedded graph database with full ACID transactions, HNSW vector search, and dual backend support"
documentation = "https://docs.rs/sqlitegraph"
readme = "README.md"
keywords = [
"graph",
"database",
"sqlite",
"embedded",
"vector",
]
categories = [
"database",
"data-structures",
]
license = "GPL-3.0-or-later"
repository = "https://github.com/oldnordic/sqlitegraph"
[features]
bench-ci = []
debug = []
default = ["sqlite-backend"]
dependency-monitoring = []
native-v2 = ["v2_io_exclusive_std"]
sqlite-backend = []
trace_v2_io = []
v2_experimental = ["native-v2"]
v2_io_exclusive_mmap = []
v2_io_exclusive_std = []
[lib]
name = "sqlitegraph"
path = "src/lib.rs"
[[example]]
name = "basic_functionality_test"
path = "examples/basic_functionality_test.rs"
[[example]]
name = "crash_test_child"
path = "examples/crash_test_child.rs"
[[example]]
name = "debug_buffer_error"
path = "examples/debug_buffer_error.rs"
[[example]]
name = "native_v2_test"
path = "examples/native_v2_test.rs"
[[example]]
name = "phase53_1_execution"
path = "examples/phase53_1_execution.rs"
[[example]]
name = "phase55_simple_benchmark"
path = "examples/phase55_simple_benchmark.rs"
[[example]]
name = "phase55_v2_performance_characterization"
path = "examples/phase55_v2_performance_characterization.rs"
[[example]]
name = "phase76_instrumentation_test"
path = "examples/phase76_instrumentation_test.rs"
[[example]]
name = "test_native_edge"
path = "examples/test_native_edge.rs"
[[test]]
name = "acid_regression_test"
path = "tests/acid_regression_test.rs"
[[test]]
name = "acid_snapshot_test"
path = "tests/acid_snapshot_test.rs"
[[test]]
name = "adjacency_iterator_infinite_loop_test"
path = "tests/adjacency_iterator_infinite_loop_test.rs"
[[test]]
name = "algo_tests"
path = "tests/algo_tests.rs"
[[test]]
name = "backend_selector_tests"
path = "tests/backend_selector_tests.rs"
[[test]]
name = "bench_data_tests"
path = "tests/bench_data_tests.rs"
[[test]]
name = "bench_gate_tests"
path = "tests/bench_gate_tests.rs"
[[test]]
name = "bench_gates_tests"
path = "tests/bench_gates_tests.rs"
[[test]]
name = "bench_meta_tests"
path = "tests/bench_meta_tests.rs"
[[test]]
name = "bench_report_tests"
path = "tests/bench_report_tests.rs"
[[test]]
name = "benchmark_isolation_test"
path = "tests/benchmark_isolation_test.rs"
[[test]]
name = "bfs_tests"
path = "tests/bfs_tests.rs"
[[test]]
name = "cache_effectiveness_tests"
path = "tests/cache_effectiveness_tests.rs"
[[test]]
name = "cache_tests"
path = "tests/cache_tests.rs"
[[test]]
name = "cluster_collision_fix_validation"
path = "tests/cluster_collision_fix_validation.rs"
[[test]]
name = "cluster_offset_corruption_regression"
path = "tests/cluster_offset_corruption_regression.rs"
[[test]]
name = "debug_index_rebuilding"
path = "tests/debug_index_rebuilding.rs"
[[test]]
name = "debug_index_rebuilding_trigger"
path = "tests/debug_index_rebuilding_trigger.rs"
[[test]]
name = "deterministic_index_tests"
path = "tests/deterministic_index_tests.rs"
[[test]]
name = "direct_file_read_corruption_test"
path = "tests/direct_file_read_corruption_test.rs"
[[test]]
name = "direct_rebuild_trigger"
path = "tests/direct_rebuild_trigger.rs"
[[test]]
name = "direct_v2_parsing_test"
path = "tests/direct_v2_parsing_test.rs"
[[test]]
name = "doc_tests"
path = "tests/doc_tests.rs"
[[test]]
name = "edge_cluster_cache_tests"
path = "tests/edge_cluster_cache_tests.rs"
[[test]]
name = "edge_compression_tests"
path = "tests/edge_compression_tests.rs"
[[test]]
name = "edge_insertion_corruption_test"
path = "tests/edge_insertion_corruption_test.rs"
[[test]]
name = "edge_tests"
path = "tests/edge_tests.rs"
[[test]]
name = "entity_tests"
path = "tests/entity_tests.rs"
[[test]]
name = "examples_tests"
path = "tests/examples_tests.rs"
[[test]]
name = "fuzz_common"
path = "tests/fuzz_common.rs"
[[test]]
name = "graph_node_existence_enforcement"
path = "tests/graph_node_existence_enforcement.rs"
[[test]]
name = "graph_opt_tests"
path = "tests/graph_opt_tests.rs"
[[test]]
name = "graphfile_io_invariant_regression_tests"
path = "tests/graphfile_io_invariant_regression_tests.rs"
[[test]]
name = "header_debug_trace_test"
path = "tests/header_debug_trace_test.rs"
[[test]]
name = "header_decode_exact_80_bytes_panic"
path = "tests/header_decode_exact_80_bytes_panic.rs"
[[test]]
name = "header_decode_oob_regression_tests"
path = "tests/header_decode_oob_regression_tests.rs"
[[test]]
name = "header_edge_case_tests"
path = "tests/header_edge_case_tests.rs"
[[test]]
name = "header_region_lockdown_tests"
path = "tests/header_region_lockdown_tests.rs"
[[test]]
name = "hnsw_persistence_tests"
path = "tests/hnsw_persistence_tests.rs"
[[test]]
name = "index_tests"
path = "tests/index_tests.rs"
[[test]]
name = "instrumentation_tests"
path = "tests/instrumentation_tests.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "json_input_validation_tests"
path = "tests/json_input_validation_tests.rs"
[[test]]
name = "json_parsing_diagnostics"
path = "tests/json_parsing_diagnostics.rs"
[[test]]
name = "l1_buffer_extraction_tests"
path = "tests/l1_buffer_extraction_tests.rs"
[[test]]
name = "large_checkpoint_test"
path = "tests/large_checkpoint_test.rs"
[[test]]
name = "lib_api_smoke_tests"
path = "tests/lib_api_smoke_tests.rs"
[[test]]
name = "linear_detector_integration_tests"
path = "tests/linear_detector_integration_tests.rs"
[[test]]
name = "multi_hop_tests"
path = "tests/multi_hop_tests.rs"
[[test]]
name = "multi_node_corruption_regression"
path = "tests/multi_node_corruption_regression.rs"
[[test]]
name = "mvcc_baseline_tests"
path = "tests/mvcc_baseline_tests.rs"
[[test]]
name = "mvcc_cache_isolation_tests"
path = "tests/mvcc_cache_isolation_tests.rs"
[[test]]
name = "mvcc_concurrent_tests"
path = "tests/mvcc_concurrent_tests.rs"
[[test]]
name = "mvcc_edge_case_tests"
path = "tests/mvcc_edge_case_tests.rs"
[[test]]
name = "mvcc_snapshot_tests"
path = "tests/mvcc_snapshot_tests.rs"
[[test]]
name = "mvcc_traversal_context_tests"
path = "tests/mvcc_traversal_context_tests.rs"
[[test]]
name = "mvcc_wal_tests"
path = "tests/mvcc_wal_tests.rs"
[[test]]
name = "native_backend_isolation_tests"
path = "tests/native_backend_isolation_tests.rs"
[[test]]
name = "native_edge_insertion_regression"
path = "tests/native_edge_insertion_regression.rs"
[[test]]
name = "native_v2_edge_boundary_tests"
path = "tests/native_v2_edge_boundary_tests.rs"
[[test]]
name = "native_v2_perf_threshold_tests"
path = "tests/native_v2_perf_threshold_tests.rs"
[[test]]
name = "native_validation_regression_tests"
path = "tests/native_validation_regression_tests.rs"
[[test]]
name = "node_cluster_index_population_test"
path = "tests/node_cluster_index_population_test.rs"
[[test]]
name = "node_slot_transaction_persistence"
path = "tests/node_slot_transaction_persistence.rs"
[[test]]
name = "pattern_cache_fastpath_tests"
path = "tests/pattern_cache_fastpath_tests.rs"
[[test]]
name = "pattern_engine_tests"
path = "tests/pattern_engine_tests.rs"
[[test]]
name = "pattern_tests"
path = "tests/pattern_tests.rs"
[[test]]
name = "perf_gate_tests"
path = "tests/perf_gate_tests.rs"
[[test]]
name = "perf_gate_v28_tests"
path = "tests/perf_gate_v28_tests.rs"
[[test]]
name = "perf_gate_v32_tests"
path = "tests/perf_gate_v32_tests.rs"
[[test]]
name = "phase30_v2_record_boundary_tests"
path = "tests/phase30_v2_record_boundary_tests.rs"
[[test]]
name = "phase31_3_cluster_neighbor_id_tests"
path = "tests/phase31_3_cluster_neighbor_id_tests.rs"
[[test]]
name = "phase31_v2_default_takeover_tests_clean"
path = "tests/phase31_v2_default_takeover_tests_clean.rs"
[[test]]
name = "phase32_cluster_pipeline_reconstruction_tests_clean"
path = "tests/phase32_cluster_pipeline_reconstruction_tests_clean.rs"
[[test]]
name = "phase35_v2_adjacency_router_rewrite_tests"
path = "tests/phase35_v2_adjacency_router_rewrite_tests.rs"
[[test]]
name = "phase36_mvcc_isolation_tests"
path = "tests/phase36_mvcc_isolation_tests.rs"
[[test]]
name = "phase38_graphfile_io_tests"
path = "tests/phase38_graphfile_io_tests.rs"
[[test]]
name = "phase40_mmap_lifecycle_tests"
path = "tests/phase40_mmap_lifecycle_tests.rs"
[[test]]
name = "phase41_mixed_io_corruption_isolation_tests"
path = "tests/phase41_mixed_io_corruption_isolation_tests.rs"
[[test]]
name = "phase42_cluster_allocation_invariants_tests"
path = "tests/phase42_cluster_allocation_invariants_tests.rs"
[[test]]
name = "phase44_2_cluster_size_contract_tests"
path = "tests/phase44_2_cluster_size_contract_tests.rs"
[[test]]
name = "phase64_node_count_durability_regression"
path = "tests/phase64_node_count_durability_regression.rs"
[[test]]
name = "phase65_cluster_size_corruption_regression"
path = "tests/phase65_cluster_size_corruption_regression.rs"
[[test]]
name = "phase66_v2_cluster_metadata_corruption_regression"
path = "tests/phase66_v2_cluster_metadata_corruption_regression.rs"
[[test]]
name = "phase68_cursor_remainder_tests"
path = "tests/phase68_cursor_remainder_tests.rs"
[[test]]
name = "phase69_cluster_payload_integrity_tests"
path = "tests/phase69_cluster_payload_integrity_tests.rs"
[[test]]
name = "phase70_v2_atomic_cluster_commit_tests"
path = "tests/phase70_v2_atomic_cluster_commit_tests.rs"
[[test]]
name = "phase73_node_count_corruption_capture"
path = "tests/phase73_node_count_corruption_capture.rs"
[[test]]
name = "phase75_tx_rollback_clears_v2_cluster_metadata"
path = "tests/phase75_tx_rollback_clears_v2_cluster_metadata.rs"
[[test]]
name = "prefetch_tuning_tests"
path = "tests/prefetch_tuning_tests.rs"
[[test]]
name = "query_cache_performance_tests"
path = "tests/query_cache_performance_tests.rs"
[[test]]
name = "query_cache_tests"
path = "tests/query_cache_tests.rs"
[[test]]
name = "query_tests"
path = "tests/query_tests.rs"
[[test]]
name = "recovery_tests"
path = "tests/recovery_tests.rs"
[[test]]
name = "regression_concurrent_traversal"
path = "tests/regression_concurrent_traversal.rs"
[[test]]
name = "regression_pubsub_concurrent"
path = "tests/regression_pubsub_concurrent.rs"
[[test]]
name = "reopen_integration_test"
path = "tests/reopen_integration_test.rs"
[[test]]
name = "rowid_tests"
path = "tests/rowid_tests.rs"
[[test]]
name = "schema_tests"
path = "tests/schema_tests.rs"
[[test]]
name = "sequential_cluster_engagement_test"
path = "tests/sequential_cluster_engagement_test.rs"
[[test]]
name = "simple_rebuild_trigger"
path = "tests/simple_rebuild_trigger.rs"
[[test]]
name = "snapshot_export_import_integration_tests"
path = "tests/snapshot_export_import_integration_tests.rs"
[[test]]
name = "snapshot_export_import_tdd_tests"
path = "tests/snapshot_export_import_tdd_tests.rs"
[[test]]
name = "telemetry_bench_37_04"
path = "tests/telemetry_bench_37_04.rs"
[[test]]
name = "telemetry_integration_test"
path = "tests/telemetry_integration_test.rs"
[[test]]
name = "test_bounds_checking"
path = "tests/test_bounds_checking.rs"
[[test]]
name = "transaction_begin_corruption_proof"
path = "tests/transaction_begin_corruption_proof.rs"
[[test]]
name = "v1_prevention_compilation_tests"
path = "tests/v1_prevention_compilation_tests.rs"
[[test]]
name = "v2_bfs_style_node_uninitialized_regression"
path = "tests/v2_bfs_style_node_uninitialized_regression.rs"
[[test]]
name = "v2_cluster_allocation_regression"
path = "tests/v2_cluster_allocation_regression.rs"
[[test]]
name = "v2_cluster_record_framing_regression"
path = "tests/v2_cluster_record_framing_regression.rs"
[[test]]
name = "v2_crash_simulation"
path = "tests/v2_crash_simulation.rs"
[[test]]
name = "v2_disk_corruption_probe"
path = "tests/v2_disk_corruption_probe.rs"
[[test]]
name = "v2_edge_cluster_corruption_regression"
path = "tests/v2_edge_cluster_corruption_regression.rs"
[[test]]
name = "v2_edge_insertion_corruption_regression"
path = "tests/v2_edge_insertion_corruption_regression.rs"
[[test]]
name = "v2_export_import_tdd_tests"
path = "tests/v2_export_import_tdd_tests.rs"
[[test]]
name = "v2_graph_ops_smoke"
path = "tests/v2_graph_ops_smoke.rs"
[[test]]
name = "v2_header_free_space_invariant_regression"
path = "tests/v2_header_free_space_invariant_regression.rs"
[[test]]
name = "v2_header_free_space_invariant_reproducer"
path = "tests/v2_header_free_space_invariant_reproducer.rs"
[[test]]
name = "v2_incoming_cluster_corruption_regression"
path = "tests/v2_incoming_cluster_corruption_regression.rs"
[[test]]
name = "v2_node_257_boundary_regression"
path = "tests/v2_node_257_boundary_regression.rs"
[[test]]
name = "v2_node_cluster_region_collision_regression"
path = "tests/v2_node_cluster_region_collision_regression.rs"
[[test]]
name = "v2_node_slot_persistence_regression"
path = "tests/v2_node_slot_persistence_regression.rs"
[[test]]
name = "v2_node_version_regression_test"
path = "tests/v2_node_version_regression_test.rs"
[[test]]
name = "v2_perf_gate_tests"
path = "tests/v2_perf_gate_tests.rs"
[[test]]
name = "v2_performance_validation"
path = "tests/v2_performance_validation.rs"
[[test]]
name = "v2_read_after_reopen_regression"
path = "tests/v2_read_after_reopen_regression.rs"
[[test]]
name = "v2_stress_integrity"
path = "tests/v2_stress_integrity.rs"
[[test]]
name = "v2_stress_reopen_test"
path = "tests/v2_stress_reopen_test.rs"
[[test]]
name = "v2_wal_recovery_integration_tests"
path = "tests/v2_wal_recovery_integration_tests.rs"
[[test]]
name = "wal_basic_compilation_test"
path = "tests/wal_basic_compilation_test.rs"
[[test]]
name = "wal_checkpoint_recovery_tests"
path = "tests/wal_checkpoint_recovery_tests.rs"
[[test]]
name = "wal_core_tests"
path = "tests/wal_core_tests.rs"
[[test]]
name = "wal_mode_default_tests"
path = "tests/wal_mode_default_tests.rs"
[[test]]
name = "wal_reader_tests"
path = "tests/wal_reader_tests.rs"
[[test]]
name = "wal_record_tests"
path = "tests/wal_record_tests.rs"
[[test]]
name = "wal_recovery_edge_cases"
path = "tests/wal_recovery_edge_cases.rs"
[[test]]
name = "wal_recovery_in_progress_test"
path = "tests/wal_recovery_in_progress_test.rs"
[[test]]
name = "wal_tuning_tests"
path = "tests/wal_tuning_tests.rs"
[[test]]
name = "wal_writer_tests"
path = "tests/wal_writer_tests.rs"
[[test]]
name = "write_buffer_coherence_regression"
path = "tests/write_buffer_coherence_regression.rs"
[[bench]]
name = "adjlist_benchmark"
path = "benches/adjlist_benchmark.rs"
[[bench]]
name = "algo_benchmarks"
path = "benches/algo_benchmarks.rs"
[[bench]]
name = "bench_utils"
path = "benches/bench_utils.rs"
[[bench]]
name = "bfs"
path = "benches/bfs.rs"
harness = false
[[bench]]
name = "comparative_benchmark"
path = "benches/comparative_benchmark.rs"
[[bench]]
name = "comprehensive_performance"
path = "benches/comprehensive_performance.rs"
harness = false
[[bench]]
name = "connection_pool"
path = "benches/connection_pool.rs"
harness = false
[[bench]]
name = "hnsw"
path = "benches/hnsw.rs"
harness = false
[[bench]]
name = "hnsw_multilayer"
path = "benches/hnsw_multilayer.rs"
harness = false
[[bench]]
name = "insert"
path = "benches/insert.rs"
harness = false
[[bench]]
name = "io12_validation"
path = "benches/io12_validation.rs"
harness = false
[[bench]]
name = "k_hop"
path = "benches/k_hop.rs"
harness = false
[[bench]]
name = "microbench_cluster_population"
path = "benches/microbench_cluster_population.rs"
[[bench]]
name = "microbench_fragmentation"
path = "benches/microbench_fragmentation.rs"
[[bench]]
name = "microbench_linear_detector"
path = "benches/microbench_linear_detector.rs"
[[bench]]
name = "mvcc_benchmarks"
path = "benches/mvcc_benchmarks.rs"
[[bench]]
name = "native_disk_io"
path = "benches/native_disk_io.rs"
[[bench]]
name = "prefetch_bench"
path = "benches/prefetch_bench.rs"
harness = false
[[bench]]
name = "read_path_benchmarks"
path = "benches/read_path_benchmarks.rs"
[[bench]]
name = "regression_memory"
path = "benches/regression_memory.rs"
[[bench]]
name = "regression_non_chain_patterns"
path = "benches/regression_non_chain_patterns.rs"
[[bench]]
name = "regression_pubsub_memory"
path = "benches/regression_pubsub_memory.rs"
[[bench]]
name = "regression_pubsub_non_chain"
path = "benches/regression_pubsub_non_chain.rs"
[[bench]]
name = "regression_pubsub_write_cost"
path = "benches/regression_pubsub_write_cost.rs"
[[bench]]
name = "regression_write_cost"
path = "benches/regression_write_cost.rs"
[[bench]]
name = "v2_dataset_generator"
path = "benches/v2_dataset_generator.rs"
[[bench]]
name = "v2_performance"
path = "benches/v2_performance.rs"
harness = false
[[bench]]
name = "wal_recovery_benchmarks"
path = "benches/wal_recovery_benchmarks.rs"
harness = false
[dependencies.ahash]
version = "0.8"
[dependencies.arc-swap]
version = "1"
[dependencies.bincode]
version = "1.3"
[dependencies.binrw]
version = "0.13"
[dependencies.bytemuck]
version = "1.13"
features = ["derive"]
[dependencies.log]
version = "0.4"
[dependencies.memmap2]
version = "0.9"
[dependencies.parking_lot]
version = "0.12"
[dependencies.r2d2]
version = "0.8"
[dependencies.r2d2_sqlite]
version = "0.24"
[dependencies.rand]
version = "0.8"
[dependencies.rayon]
version = "1.10"
[dependencies.rusqlite]
version = "0.31"
features = ["bundled"]
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.thiserror]
version = "1"
[dev-dependencies.assert_cmd]
version = "2"
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.rand]
version = "0.8"
[dev-dependencies.tempfile]
version = "3"