[package]
edition = "2024"
name = "sqlitegraph"
version = "2.2.2"
build = false
exclude = [
"benches/*.json",
"benches/*.txt",
"internal/**",
".claude/**",
"**/CLAUDE.md",
"**/AGENTS.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Embedded graph database with full ACID transactions, HNSW vector search, dual backend support, and comprehensive graph algorithms library"
documentation = "https://docs.rs/sqlitegraph"
readme = "README.md"
keywords = [
"graph",
"database",
"sqlite",
"embedded",
"vector",
]
categories = [
"database",
"data-structures",
]
license = "GPL-3.0"
repository = "https://github.com/oldnordic/sqlitegraph"
[features]
bench-ci = []
debug = []
default = ["sqlite-backend"]
dependency-monitoring = []
memory_profiling = []
native-v3 = []
sqlite-backend = []
v3-bench = ["native-v3"]
v3-forensics = []
v3-page-overflow-debug = []
[lib]
name = "sqlitegraph"
path = "src/lib.rs"
[[example]]
name = "algo_benchmark"
path = "examples/algo_benchmark.rs"
[[example]]
name = "basic_functionality_test"
path = "examples/basic_functionality_test.rs"
[[example]]
name = "batch_bench"
path = "examples/batch_bench.rs"
[[example]]
name = "batch_stress_test"
path = "examples/batch_stress_test.rs"
[[example]]
name = "bench_parallel_bfs"
path = "examples/bench_parallel_bfs.rs"
[[example]]
name = "block_locality_benchmark"
path = "examples/block_locality_benchmark.rs"
[[example]]
name = "cache_capacity_benchmark"
path = "examples/cache_capacity_benchmark.rs"
[[example]]
name = "cache_clone_forensics"
path = "examples/cache_clone_forensics.rs"
[[example]]
name = "cache_perf_test"
path = "examples/cache_perf_test.rs"
[[example]]
name = "cold_path_decomposition"
path = "examples/cold_path_decomposition.rs"
[[example]]
name = "compression_analysis"
path = "examples/compression_analysis.rs"
[[example]]
name = "compression_detailed"
path = "examples/compression_detailed.rs"
[[example]]
name = "compression_diagnostics"
path = "examples/compression_diagnostics.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 = "get_node_cache_sweep"
path = "examples/get_node_cache_sweep.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 = "reopen_corruption_repro"
path = "examples/reopen_corruption_repro.rs"
[[example]]
name = "test_100k"
path = "examples/test_100k.rs"
[[example]]
name = "test_adaptive_pages"
path = "examples/test_adaptive_pages.rs"
[[example]]
name = "test_allocator_startup"
path = "examples/test_allocator_startup.rs"
[[example]]
name = "test_batch_simple"
path = "examples/test_batch_simple.rs"
[[example]]
name = "test_binary_search"
path = "examples/test_binary_search.rs"
[[example]]
name = "test_btree_100k"
path = "examples/test_btree_100k.rs"
[[example]]
name = "test_cache_warm"
path = "examples/test_cache_warm.rs"
[[example]]
name = "test_chunked_bfs"
path = "examples/test_chunked_bfs.rs"
[[example]]
name = "test_delta_encoding"
path = "examples/test_delta_encoding.rs"
[[example]]
name = "test_direct_backend_benchmark"
path = "examples/test_direct_backend_benchmark.rs"
[[example]]
name = "test_direct_edgestore"
path = "examples/test_direct_edgestore.rs"
[[example]]
name = "test_edge_store_direct"
path = "examples/test_edge_store_direct.rs"
[[example]]
name = "test_edgestore_perf"
path = "examples/test_edgestore_perf.rs"
[[example]]
name = "test_index_restore"
path = "examples/test_index_restore.rs"
[[example]]
name = "test_index_staleness"
path = "examples/test_index_staleness.rs"
[[example]]
name = "test_lazy_decode"
path = "examples/test_lazy_decode.rs"
[[example]]
name = "test_lock_overhead"
path = "examples/test_lock_overhead.rs"
[[example]]
name = "test_native_edge"
path = "examples/test_native_edge.rs"
[[example]]
name = "test_neighbors_cache"
path = "examples/test_neighbors_cache.rs"
[[example]]
name = "test_neighbors_detailed"
path = "examples/test_neighbors_detailed.rs"
[[example]]
name = "test_neighbors_profile"
path = "examples/test_neighbors_profile.rs"
[[example]]
name = "test_open_detailed_timing"
path = "examples/test_open_detailed_timing.rs"
[[example]]
name = "test_open_roundtrip"
path = "examples/test_open_roundtrip.rs"
[[example]]
name = "test_open_stage_timing"
path = "examples/test_open_stage_timing.rs"
[[example]]
name = "test_performance_comparison"
path = "examples/test_performance_comparison.rs"
[[example]]
name = "test_rwlock_overhead"
path = "examples/test_rwlock_overhead.rs"
[[example]]
name = "test_sqlite_neighbors_perf"
path = "examples/test_sqlite_neighbors_perf.rs"
[[example]]
name = "test_v3_neighbors_perf"
path = "examples/test_v3_neighbors_perf.rs"
[[example]]
name = "test_vec_clone"
path = "examples/test_vec_clone.rs"
[[example]]
name = "v3_forensic_page_analysis"
path = "examples/v3_forensic_page_analysis.rs"
[[example]]
name = "v3_forensics_example"
path = "examples/v3_forensics_example.rs"
[[example]]
name = "v3_get_node_profile"
path = "examples/v3_get_node_profile.rs"
[[example]]
name = "v3_offset_forensic"
path = "examples/v3_offset_forensic.rs"
[[example]]
name = "v3_perf_test"
path = "examples/v3_perf_test.rs"
[[example]]
name = "v3_readonly_profile"
path = "examples/v3_readonly_profile.rs"
[[example]]
name = "v3_reopen_verify"
path = "examples/v3_reopen_verify.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 = "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 = "bincode_compatibility_test"
path = "tests/bincode_compatibility_test.rs"
[[test]]
name = "cache_effectiveness_tests"
path = "tests/cache_effectiveness_tests.rs"
[[test]]
name = "cache_tests"
path = "tests/cache_tests.rs"
[[test]]
name = "check_write_path"
path = "tests/check_write_path.rs"
[[test]]
name = "cluster_offset_corruption_regression"
path = "tests/cluster_offset_corruption_regression.rs"
[[test]]
name = "cold_path_forensics"
path = "tests/cold_path_forensics.rs"
[[test]]
name = "debug_file_size"
path = "tests/debug_file_size.rs"
[[test]]
name = "debug_index_rebuilding"
path = "tests/debug_index_rebuilding.rs"
[[test]]
name = "debug_overflow"
path = "tests/debug_overflow.rs"
[[test]]
name = "debug_scenario_c"
path = "tests/debug_scenario_c.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 = "doc_tests"
path = "tests/doc_tests.rs"
[[test]]
name = "edge_corruption_minimal"
path = "tests/edge_corruption_minimal.rs"
[[test]]
name = "edge_corruption_repro"
path = "tests/edge_corruption_repro.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 = "file_extension_debug"
path = "tests/file_extension_debug.rs"
[[test]]
name = "fuzz_common"
path = "tests/fuzz_common.rs"
[[test]]
name = "get_node_forensics"
path = "tests/get_node_forensics.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 = "hnsw_persistence_tests"
path = "tests/hnsw_persistence_tests.rs"
[[test]]
name = "index_persistence_integration"
path = "tests/index_persistence_integration.rs"
[[test]]
name = "index_persistence_validation"
path = "tests/index_persistence_validation.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 = "isolate_open_bug"
path = "tests/isolate_open_bug.rs"
[[test]]
name = "json_parsing_diagnostics"
path = "tests/json_parsing_diagnostics.rs"
[[test]]
name = "kv_durability_tests"
path = "tests/kv_durability_tests.rs"
[[test]]
name = "lib_api_smoke_tests"
path = "tests/lib_api_smoke_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_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_wal_tests"
path = "tests/mvcc_wal_tests.rs"
[[test]]
name = "native_edge_insertion_regression"
path = "tests/native_edge_insertion_regression.rs"
[[test]]
name = "node_overflow_forensics"
path = "tests/node_overflow_forensics.rs"
[[test]]
name = "node_read_forensics_test"
path = "tests/node_read_forensics_test.rs"
[[test]]
name = "node_slot_transaction_persistence"
path = "tests/node_slot_transaction_persistence.rs"
[[test]]
name = "oom_reproduction_test"
path = "tests/oom_reproduction_test.rs"
[[test]]
name = "page_42_debug"
path = "tests/page_42_debug.rs"
[[test]]
name = "page_write_debug"
path = "tests/page_write_debug.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_v32_tests"
path = "tests/perf_gate_v32_tests.rs"
[[test]]
name = "phase32_cluster_pipeline_reconstruction_tests_clean"
path = "tests/phase32_cluster_pipeline_reconstruction_tests_clean.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 = "phase73_node_count_corruption_capture"
path = "tests/phase73_node_count_corruption_capture.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 = "reopen_corruption_investigation"
path = "tests/reopen_corruption_investigation.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 = "snapshot_isolation_tests"
path = "tests/snapshot_isolation_tests.rs"
[[test]]
name = "sqlite_reopen_tests"
path = "tests/sqlite_reopen_tests.rs"
[[test]]
name = "sqlite_snapshot_tests"
path = "tests/sqlite_snapshot_tests.rs"
[[test]]
name = "test_10k_bug_reproduction"
path = "tests/test_10k_bug_reproduction.rs"
[[test]]
name = "transaction_begin_corruption_proof"
path = "tests/transaction_begin_corruption_proof.rs"
[[test]]
name = "unsafe_invariants_tests"
path = "tests/unsafe_invariants_tests.rs"
[[test]]
name = "v3_algorithm_tests"
path = "tests/v3_algorithm_tests.rs"
[[test]]
name = "v3_block_locality_tests"
path = "tests/v3_block_locality_tests.rs"
[[test]]
name = "v3_btree_forensics"
path = "tests/v3_btree_forensics.rs"
[[test]]
name = "v3_check_nodepages"
path = "tests/v3_check_nodepages.rs"
[[test]]
name = "v3_dump_page_headers"
path = "tests/v3_dump_page_headers.rs"
[[test]]
name = "v3_edge_durability_tdd"
path = "tests/v3_edge_durability_tdd.rs"
[[test]]
name = "v3_file_write_test"
path = "tests/v3_file_write_test.rs"
[[test]]
name = "v3_focused_perf"
path = "tests/v3_focused_perf.rs"
[[test]]
name = "v3_forensics_test"
path = "tests/v3_forensics_test.rs"
[[test]]
name = "v3_header_forensics"
path = "tests/v3_header_forensics.rs"
[[test]]
name = "v3_insert_read_forensics"
path = "tests/v3_insert_read_forensics.rs"
[[test]]
name = "v3_integrity_check"
path = "tests/v3_integrity_check.rs"
[[test]]
name = "v3_kind_index_tests"
path = "tests/v3_kind_index_tests.rs"
[[test]]
name = "v3_name_index_tests"
path = "tests/v3_name_index_tests.rs"
[[test]]
name = "v3_page_ownership_forensics"
path = "tests/v3_page_ownership_forensics.rs"
[[test]]
name = "v3_persistence_100"
path = "tests/v3_persistence_100.rs"
[[test]]
name = "v3_query_truth_tests"
path = "tests/v3_query_truth_tests.rs"
[[test]]
name = "v3_regression_sweep"
path = "tests/v3_regression_sweep.rs"
[[test]]
name = "v3_reopen_durability"
path = "tests/v3_reopen_durability.rs"
[[test]]
name = "v3_sync_fix_validation"
path = "tests/v3_sync_fix_validation.rs"
[[test]]
name = "v3_verify_file_persistence"
path = "tests/v3_verify_file_persistence.rs"
[[test]]
name = "wal_mode_default_tests"
path = "tests/wal_mode_default_tests.rs"
[[test]]
name = "wal_tuning_tests"
path = "tests/wal_tuning_tests.rs"
[[test]]
name = "write_buffer_coherence_regression"
path = "tests/write_buffer_coherence_regression.rs"
[[bench]]
name = "adaptive_page_simple"
path = "benches/adaptive_page_simple.rs"
harness = false
required-features = ["native-v3"]
[[bench]]
name = "adjlist_benchmark"
path = "benches/adjlist_benchmark.rs"
[[bench]]
name = "algo_benchmarks"
path = "benches/algo_benchmarks.rs"
[[bench]]
name = "backend_comparison"
path = "benches/backend_comparison.rs"
harness = false
[[bench]]
name = "bench_utils"
path = "benches/bench_utils.rs"
[[bench]]
name = "bfs"
path = "benches/bfs.rs"
harness = false
[[bench]]
name = "cold_cache"
path = "benches/cold_cache.rs"
harness = false
required-features = ["native-v3"]
[[bench]]
name = "comparative_benchmark"
path = "benches/comparative_benchmark.rs"
[[bench]]
name = "comprehensive_performance"
path = "benches/comprehensive_performance.rs"
harness = false
[[bench]]
name = "compression_benchmark"
path = "benches/compression_benchmark.rs"
[[bench]]
name = "concurrent_access"
path = "benches/concurrent_access.rs"
harness = false
required-features = ["native-v3"]
[[bench]]
name = "connection_pool"
path = "benches/connection_pool.rs"
harness = false
[[bench]]
name = "graph_generators"
path = "benches/graph_generators.rs"
[[bench]]
name = "graph_theory_benchmarks"
path = "benches/graph_theory_benchmarks.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 = "k_hop"
path = "benches/k_hop.rs"
harness = false
[[bench]]
name = "memory_profiling"
path = "benches/memory_profiling.rs"
harness = false
required-features = [
"native-v3",
"memory_profiling",
]
[[bench]]
name = "mvcc_benchmarks"
path = "benches/mvcc_benchmarks.rs"
[[bench]]
name = "native_disk_io"
path = "benches/native_disk_io.rs"
[[bench]]
name = "parallel_bfs"
path = "benches/parallel_bfs.rs"
harness = false
required-features = ["native-v3"]
[[bench]]
name = "read_path_benchmarks"
path = "benches/read_path_benchmarks.rs"
[[bench]]
name = "real_datasets"
path = "benches/real_datasets.rs"
harness = false
required-features = ["native-v3"]
[[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 = "sqlite_v3_comparison"
path = "benches/sqlite_v3_comparison.rs"
harness = false
[[bench]]
name = "v3_algorithm_benchmarks"
path = "benches/v3_algorithm_benchmarks.rs"
harness = false
required-features = ["native-v3"]
[[bench]]
name = "v3_backend_benchmarks"
path = "benches/v3_backend_benchmarks.rs"
harness = false
required-features = ["native-v3"]
[[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.lru]
version = "0.12"
[dependencies.memmap2]
version = "0.9"
[dependencies.parking_lot]
version = "0.12"
[dependencies.petgraph]
version = "0.6"
[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.sha2]
version = "0.10"
[dependencies.sysinfo]
version = "0.30"
[dependencies.thiserror]
version = "1"
[dev-dependencies.assert_cmd]
version = "2"
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.nix]
version = "0.27"
features = [
"fs",
"process",
]
[dev-dependencies.rand]
version = "0.8"
[dev-dependencies.rustc_version]
version = "0.4"
[dev-dependencies.tempfile]
version = "3"