[package]
edition = "2021"
name = "sparrowdb"
version = "0.1.16"
authors = ["Rich Yaker"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Embedded graph database with Cypher queries — no server, no subscription, no cloud"
documentation = "https://docs.rs/sparrowdb"
readme = "README.md"
keywords = [
"graph",
"database",
"cypher",
"embedded",
"nosql",
]
categories = [
"database",
"data-structures",
]
license = "MIT"
repository = "https://github.com/ryaker/SparrowDB"
[lib]
name = "sparrowdb"
path = "src/lib.rs"
[[bin]]
name = "gen-compat-fixture"
path = "src/bin/gen-compat-fixture.rs"
[[bin]]
name = "gen-encrypted-fixture"
path = "src/bin/gen-encrypted-fixture.rs"
[[bin]]
name = "gen-fixtures"
path = "src/bin/gen-fixtures.rs"
[[bin]]
name = "sparrowdb-mcp"
path = "src/bin/sparrowdb-mcp.rs"
[[test]]
name = "acceptance"
path = "tests/acceptance.rs"
[[test]]
name = "cypher_range_function_test"
path = "tests/cypher_range_function_test.rs"
[[test]]
name = "debug_case_when"
path = "tests/debug_case_when.rs"
[[test]]
name = "debug_so_subclass"
path = "tests/debug_so_subclass.rs"
[[test]]
name = "delete_edge"
path = "tests/delete_edge.rs"
[[test]]
name = "export_import"
path = "tests/export_import.rs"
[[test]]
name = "gap_10_parameterized_queries"
path = "tests/gap_10_parameterized_queries.rs"
[[test]]
name = "gen_fixtures_test"
path = "tests/gen_fixtures_test.rs"
[[test]]
name = "match_after_create"
path = "tests/match_after_create.rs"
[[test]]
name = "match_property_index"
path = "tests/match_property_index.rs"
[[test]]
name = "merge_node"
path = "tests/merge_node.rs"
[[test]]
name = "path_semantics"
path = "tests/path_semantics.rs"
[[test]]
name = "phase5_maintenance"
path = "tests/phase5_maintenance.rs"
[[test]]
name = "phase5_swmr"
path = "tests/phase5_swmr.rs"
[[test]]
name = "phase7_mutation"
path = "tests/phase7_mutation.rs"
[[test]]
name = "property_range_index"
path = "tests/property_range_index.rs"
[[test]]
name = "readtx_query"
path = "tests/readtx_query.rs"
[[test]]
name = "regression_355"
path = "tests/regression_355.rs"
[[test]]
name = "regression_364"
path = "tests/regression_364.rs"
[[test]]
name = "regression_real_world"
path = "tests/regression_real_world.rs"
[[test]]
name = "reverse_arrow_294"
path = "tests/reverse_arrow_294.rs"
[[test]]
name = "spa157_cypher_mutations"
path = "tests/spa157_cypher_mutations.rs"
[[test]]
name = "spa163_164_read_path"
path = "tests/spa163_164_read_path.rs"
[[test]]
name = "spa191_rel_type_persistence"
path = "tests/spa191_rel_type_persistence.rs"
[[test]]
name = "spa_100_order_by_spill"
path = "tests/spa_100_order_by_spill.rs"
[[test]]
name = "spa_101_join_spill"
path = "tests/spa_101_join_spill.rs"
[[test]]
name = "spa_105_golden_fixtures"
path = "tests/spa_105_golden_fixtures.rs"
[[test]]
name = "spa_111_ldbc_ic3_ic14"
path = "tests/spa_111_ldbc_ic3_ic14.rs"
[[test]]
name = "spa_111_ldbc_snb"
path = "tests/spa_111_ldbc_snb.rs"
[[test]]
name = "spa_119_compat_fixture"
path = "tests/spa_119_compat_fixture.rs"
[[test]]
name = "spa_130_with_clause"
path = "tests/spa_130_with_clause.rs"
[[test]]
name = "spa_131_optional_match"
path = "tests/spa_131_optional_match.rs"
[[test]]
name = "spa_132_union"
path = "tests/spa_132_union.rs"
[[test]]
name = "spa_134_multi_clause"
path = "tests/spa_134_multi_clause.rs"
[[test]]
name = "spa_136_shortest_path"
path = "tests/spa_136_shortest_path.rs"
[[test]]
name = "spa_137_exists_subquery"
path = "tests/spa_137_exists_subquery.rs"
[[test]]
name = "spa_138_case_when"
path = "tests/spa_138_case_when.rs"
[[test]]
name = "spa_139_phase9_path_acceptance"
path = "tests/spa_139_phase9_path_acceptance.rs"
[[test]]
name = "spa_140_143_functions"
path = "tests/spa_140_143_functions.rs"
[[test]]
name = "spa_144_tck_harness"
path = "tests/spa_144_tck_harness.rs"
[[test]]
name = "spa_148_import_bridge"
path = "tests/spa_148_import_bridge.rs"
[[test]]
name = "spa_149_visualizer"
path = "tests/spa_149_visualizer.rs"
[[test]]
name = "spa_151_kms_query_validation"
path = "tests/spa_151_kms_query_validation.rs"
[[test]]
name = "spa_155_unwind_param"
path = "tests/spa_155_unwind_param.rs"
[[test]]
name = "spa_156_161"
path = "tests/spa_156_161.rs"
[[test]]
name = "spa_165_col_prefix_property"
path = "tests/spa_165_col_prefix_property.rs"
[[test]]
name = "spa_168_degree_cache_wiring"
path = "tests/spa_168_degree_cache_wiring.rs"
[[test]]
name = "spa_168_match_create"
path = "tests/spa_168_match_create.rs"
[[test]]
name = "spa_169_string_props"
path = "tests/spa_169_string_props.rs"
[[test]]
name = "spa_172_count_distinct"
path = "tests/spa_172_count_distinct.rs"
[[test]]
name = "spa_178_edge_properties"
path = "tests/spa_178_edge_properties.rs"
[[test]]
name = "spa_182_create_path_rhs"
path = "tests/spa_182_create_path_rhs.rs"
[[test]]
name = "spa_183_match_create_bindings"
path = "tests/spa_183_match_create_bindings.rs"
[[test]]
name = "spa_184_wal_durability"
path = "tests/spa_184_wal_durability.rs"
[[test]]
name = "spa_185_rel_table_id"
path = "tests/spa_185_rel_table_id.rs"
[[test]]
name = "spa_186_csr_nodeid"
path = "tests/spa_186_csr_nodeid.rs"
[[test]]
name = "spa_187_column_slot_alignment"
path = "tests/spa_187_column_slot_alignment.rs"
[[test]]
name = "spa_188_two_hop_where"
path = "tests/spa_188_two_hop_where.rs"
[[test]]
name = "spa_189_checkpoint_optimize"
path = "tests/spa_189_checkpoint_optimize.rs"
[[test]]
name = "spa_192_match_no_label"
path = "tests/spa_192_match_no_label.rs"
[[test]]
name = "spa_193_undirected_pattern"
path = "tests/spa_193_undirected_pattern.rs"
[[test]]
name = "spa_194_count_node_var"
path = "tests/spa_194_count_node_var.rs"
[[test]]
name = "spa_195_type_function"
path = "tests/spa_195_type_function.rs"
[[test]]
name = "spa_196_id_function"
path = "tests/spa_196_id_function.rs"
[[test]]
name = "spa_197_count_label_fastpath"
path = "tests/spa_197_count_label_fastpath.rs"
[[test]]
name = "spa_197_missing_prop_null"
path = "tests/spa_197_missing_prop_null.rs"
[[test]]
name = "spa_198_limit_pushdown"
path = "tests/spa_198_limit_pushdown.rs"
[[test]]
name = "spa_198_unlabeled_rel_endpoint"
path = "tests/spa_198_unlabeled_rel_endpoint.rs"
[[test]]
name = "spa_199_bfs_early_exit"
path = "tests/spa_199_bfs_early_exit.rs"
[[test]]
name = "spa_200_batch_hop_perf"
path = "tests/spa_200_batch_hop_perf.rs"
[[test]]
name = "spa_201_csr_backward"
path = "tests/spa_201_csr_backward.rs"
[[test]]
name = "spa_206_contains_predicate"
path = "tests/spa_206_contains_predicate.rs"
[[test]]
name = "spa_206_mlm_benchmark"
path = "tests/spa_206_mlm_benchmark.rs"
[[test]]
name = "spa_207_labels_function"
path = "tests/spa_207_labels_function.rs"
[[test]]
name = "spa_207_null_sentinel"
path = "tests/spa_207_null_sentinel.rs"
[[test]]
name = "spa_208_reserved_labels"
path = "tests/spa_208_reserved_labels.rs"
[[test]]
name = "spa_208_string_heap"
path = "tests/spa_208_string_heap.rs"
[[test]]
name = "spa_209_schema_introspection"
path = "tests/spa_209_schema_introspection.rs"
[[test]]
name = "spa_210_wal_persistence"
path = "tests/spa_210_wal_persistence.rs"
[[test]]
name = "spa_211_hwm_crash_safety"
path = "tests/spa_211_hwm_crash_safety.rs"
[[test]]
name = "spa_211_unlabeled_match_create"
path = "tests/spa_211_unlabeled_match_create.rs"
[[test]]
name = "spa_212_string_truncation"
path = "tests/spa_212_string_truncation.rs"
[[test]]
name = "spa_213_return_node_var"
path = "tests/spa_213_return_node_var.rs"
[[test]]
name = "spa_214_skip_clause"
path = "tests/spa_214_skip_clause.rs"
[[test]]
name = "spa_215_merge_return"
path = "tests/spa_215_merge_return.rs"
[[test]]
name = "spa_216_delete_node"
path = "tests/spa_216_delete_node.rs"
[[test]]
name = "spa_217_info_counts"
path = "tests/spa_217_info_counts.rs"
[[test]]
name = "spa_220_wal_migration"
path = "tests/spa_220_wal_migration.rs"
[[test]]
name = "spa_222_csr_lazy_load"
path = "tests/spa_222_csr_lazy_load.rs"
[[test]]
name = "spa_224_regression_no_so_label"
path = "tests/spa_224_regression_no_so_label.rs"
[[test]]
name = "spa_224_varpath_reserved_label"
path = "tests/spa_224_varpath_reserved_label.rs"
[[test]]
name = "spa_228_mcp_integration"
path = "tests/spa_228_mcp_integration.rs"
[[test]]
name = "spa_229_add_property"
path = "tests/spa_229_add_property.rs"
[[test]]
name = "spa_229_edge_prop_float"
path = "tests/spa_229_edge_prop_float.rs"
[[test]]
name = "spa_233_merge_relationship"
path = "tests/spa_233_merge_relationship.rs"
[[test]]
name = "spa_235_234_create_index_constraint"
path = "tests/spa_235_234_create_index_constraint.rs"
[[test]]
name = "spa_236_labels_predicate"
path = "tests/spa_236_labels_predicate.rs"
[[test]]
name = "spa_237_unwind_match"
path = "tests/spa_237_unwind_match.rs"
[[test]]
name = "spa_240_coalesce"
path = "tests/spa_240_coalesce.rs"
[[test]]
name = "spa_241_multihop_props"
path = "tests/spa_241_multihop_props.rs"
[[test]]
name = "spa_242_count_rel_var"
path = "tests/spa_242_count_rel_var.rs"
[[test]]
name = "spa_243_create_entity"
path = "tests/spa_243_create_entity.rs"
[[test]]
name = "spa_244_mcp_errors"
path = "tests/spa_244_mcp_errors.rs"
[[test]]
name = "spa_245_unknown_label_returns_empty"
path = "tests/spa_245_unknown_label_returns_empty.rs"
[[test]]
name = "spa_249_property_index"
path = "tests/spa_249_property_index.rs"
[[test]]
name = "spa_250_batch_write"
path = "tests/spa_250_batch_write.rs"
[[test]]
name = "spa_251_text_search_index"
path = "tests/spa_251_text_search_index.rs"
[[test]]
name = "spa_252_three_hop_binding"
path = "tests/spa_252_three_hop_binding.rs"
[[test]]
name = "spa_254_query_timeout"
path = "tests/spa_254_query_timeout.rs"
[[test]]
name = "spa_259_inline_prop_filter"
path = "tests/spa_259_inline_prop_filter.rs"
[[test]]
name = "spa_261_edge_props_perf"
path = "tests/spa_261_edge_props_perf.rs"
[[test]]
name = "spa_263_two_hop_agg"
path = "tests/spa_263_two_hop_agg.rs"
[[test]]
name = "spa_263_two_hop_null"
path = "tests/spa_263_two_hop_null.rs"
[[test]]
name = "spa_264_boolean_props"
path = "tests/spa_264_boolean_props.rs"
[[test]]
name = "spa_265_backtick_escaping"
path = "tests/spa_265_backtick_escaping.rs"
[[test]]
name = "spa_266_265_bugs"
path = "tests/spa_266_265_bugs.rs"
[[test]]
name = "spa_267_float_codec"
path = "tests/spa_267_float_codec.rs"
[[test]]
name = "spa_268_bfs_bugs"
path = "tests/spa_268_bfs_bugs.rs"
[[test]]
name = "spa_272_degree_cache"
path = "tests/spa_272_degree_cache.rs"
[[test]]
name = "spa_272_q7_count_fastpath"
path = "tests/spa_272_q7_count_fastpath.rs"
[[test]]
name = "spa_272_q7_cypher_wiring"
path = "tests/spa_272_q7_cypher_wiring.rs"
[[test]]
name = "spa_273_planner_stats"
path = "tests/spa_273_planner_stats.rs"
[[test]]
name = "spa_289_multi_label"
path = "tests/spa_289_multi_label.rs"
[[test]]
name = "spa_296_bulk_loader"
path = "tests/spa_296_bulk_loader.rs"
[[test]]
name = "spa_299_chunked_pipeline"
path = "tests/spa_299_chunked_pipeline.rs"
[[test]]
name = "spa_299_phase2_parity"
path = "tests/spa_299_phase2_parity.rs"
[[test]]
name = "spa_299_phase3_parity"
path = "tests/spa_299_phase3_parity.rs"
[[test]]
name = "spa_299_phase4_parity"
path = "tests/spa_299_phase4_parity.rs"
[[test]]
name = "spa_306_constraint_persistence"
path = "tests/spa_306_constraint_persistence.rs"
[[test]]
name = "spa_354_varlength_terminal_label"
path = "tests/spa_354_varlength_terminal_label.rs"
[[test]]
name = "spa_98_wal_encryption"
path = "tests/spa_98_wal_encryption.rs"
[[test]]
name = "spa_99_encryption_fixture"
path = "tests/spa_99_encryption_fixture.rs"
[[test]]
name = "spa_aggregation"
path = "tests/spa_aggregation.rs"
[[test]]
name = "spa_collect_agg"
path = "tests/spa_collect_agg.rs"
[[test]]
name = "spa_datetime_fns"
path = "tests/spa_datetime_fns.rs"
[[test]]
name = "spa_fulltext"
path = "tests/spa_fulltext.rs"
[[test]]
name = "spa_in_operator"
path = "tests/spa_in_operator.rs"
[[test]]
name = "spa_is_null"
path = "tests/spa_is_null.rs"
[[test]]
name = "spa_list_predicates"
path = "tests/spa_list_predicates.rs"
[[test]]
name = "spa_type_labels"
path = "tests/spa_type_labels.rs"
[[test]]
name = "spa_variable_paths"
path = "tests/spa_variable_paths.rs"
[[test]]
name = "test_pole"
path = "tests/test_pole.rs"
[[test]]
name = "test_reactome"
path = "tests/test_reactome.rs"
[[test]]
name = "uc1_social_graph"
path = "tests/uc1_social_graph.rs"
[[test]]
name = "uc7_unwind"
path = "tests/uc7_unwind.rs"
[[test]]
name = "uc_tracing"
path = "tests/uc_tracing.rs"
[[bench]]
name = "batch_benchmarks"
path = "benches/batch_benchmarks.rs"
harness = false
[[bench]]
name = "graph_benchmarks"
path = "benches/graph_benchmarks.rs"
harness = false
[[bench]]
name = "pipeline_phase2_benchmarks"
path = "benches/pipeline_phase2_benchmarks.rs"
harness = false
[[bench]]
name = "property_index_benchmarks"
path = "benches/property_index_benchmarks.rs"
harness = false
[[bench]]
name = "snap_benchmarks"
path = "benches/snap_benchmarks.rs"
harness = false
[dependencies.clap]
version = "4"
features = ["derive"]
[dependencies.csv]
version = "1"
[dependencies.rand]
version = "0.8"
features = ["small_rng"]
[dependencies.rand_chacha]
version = "0.3"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sparrowdb-catalog]
version = "0.1.16"
[dependencies.sparrowdb-common]
version = "0.1.16"
[dependencies.sparrowdb-cypher]
version = "0.1.16"
[dependencies.sparrowdb-execution]
version = "0.1.16"
[dependencies.sparrowdb-storage]
version = "0.1.16"
[dependencies.tracing]
version = "0.1"
[dev-dependencies.crc32fast]
version = "1"
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tempfile]
version = "3"