[package]
edition = "2021"
rust-version = "1.77"
name = "ruvector-graph"
version = "2.2.3"
authors = ["Ruvector Team"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Distributed Neo4j-compatible hypergraph database with SIMD optimization"
readme = "README.md"
license = "MIT"
repository = "https://github.com/ruvnet/ruvector"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
async-runtime = [
"tokio",
"futures",
"moka",
]
compression = [
"zstd",
"lz4",
]
cypher-lalrpop = ["lalrpop-util"]
cypher-pest = [
"pest",
"pest_derive",
]
default = ["full"]
distributed = [
"ruvector-raft",
"ruvector-cluster",
"ruvector-replication",
"blake3",
"xxhash-rust",
"full",
]
federation = [
"tonic",
"prost",
"tower",
"hyper",
"distributed",
]
full = [
"simd",
"storage",
"async-runtime",
"compression",
"hnsw_rs",
"ruvector-core/hnsw",
]
fulltext = []
geospatial = []
jit = []
metrics = ["prometheus"]
simd = [
"ruvector-core/simd",
"simsimd",
]
storage = [
"redb",
"memmap2",
]
temporal = []
wasm = []
[lib]
name = "ruvector_graph"
crate-type = ["rlib"]
path = "src/lib.rs"
bench = false
[[example]]
name = "test_cypher_parser"
path = "examples/test_cypher_parser.rs"
[[test]]
name = "compatibility_tests"
path = "tests/compatibility_tests.rs"
[[test]]
name = "concurrent_tests"
path = "tests/concurrent_tests.rs"
[[test]]
name = "cypher_execution_tests"
path = "tests/cypher_execution_tests.rs"
[[test]]
name = "cypher_parser_integration"
path = "tests/cypher_parser_integration.rs"
[[test]]
name = "cypher_parser_tests"
path = "tests/cypher_parser_tests.rs"
[[test]]
name = "distributed_tests"
path = "tests/distributed_tests.rs"
[[test]]
name = "edge_tests"
path = "tests/edge_tests.rs"
[[test]]
name = "hyperedge_tests"
path = "tests/hyperedge_tests.rs"
[[test]]
name = "node_tests"
path = "tests/node_tests.rs"
[[test]]
name = "performance_tests"
path = "tests/performance_tests.rs"
[[test]]
name = "transaction_tests"
path = "tests/transaction_tests.rs"
[[bench]]
name = "cypher_parser"
path = "benches/cypher_parser.rs"
[[bench]]
name = "distributed_query"
path = "benches/distributed_query.rs"
[[bench]]
name = "graph_bench"
path = "benches/graph_bench.rs"
[[bench]]
name = "graph_traversal"
path = "benches/graph_traversal.rs"
[[bench]]
name = "hybrid_vector_graph"
path = "benches/hybrid_vector_graph.rs"
[[bench]]
name = "new_capabilities_bench"
path = "benches/new_capabilities_bench.rs"
harness = false
[[bench]]
name = "query_execution"
path = "benches/query_execution.rs"
[[bench]]
name = "simd_operations"
path = "benches/simd_operations.rs"
[[bench]]
name = "typed_graph_bench"
path = "benches/typed_graph_bench.rs"
harness = false
[dependencies.anyhow]
version = "1.0"
[dependencies.bincode]
version = "2.0.0-rc.3"
features = ["serde"]
[dependencies.blake3]
version = "1.5"
optional = true
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.crossbeam]
version = "0.8"
[dependencies.dashmap]
version = "6.1"
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.hnsw_rs]
version = "0.3"
optional = true
[dependencies.hyper]
version = "1.4"
optional = true
[dependencies.lalrpop-util]
version = "0.21"
optional = true
[dependencies.lru]
version = "0.16"
[dependencies.lz4]
version = "1.24"
optional = true
[dependencies.memmap2]
version = "0.9"
optional = true
[dependencies.moka]
version = "0.12"
features = ["future"]
optional = true
[dependencies.ndarray]
version = "0.16"
[dependencies.nom]
version = "7.1"
[dependencies.nom_locate]
version = "4.2"
[dependencies.num_cpus]
version = "1.16"
[dependencies.once_cell]
version = "1.20"
[dependencies.ordered-float]
version = "4.2"
[dependencies.parking_lot]
version = "0.12"
[dependencies.pest]
version = "2.7"
optional = true
[dependencies.pest_derive]
version = "2.7"
optional = true
[dependencies.petgraph]
version = "0.6"
[dependencies.prometheus]
version = "0.14"
optional = true
[dependencies.prost]
version = "0.13"
optional = true
[dependencies.rand]
version = "0.8"
[dependencies.rand_distr]
version = "0.4"
[dependencies.rayon]
version = "1.10"
[dependencies.redb]
version = "2.1"
optional = true
[dependencies.rkyv]
version = "0.8"
[dependencies.roaring]
version = "0.10"
[dependencies.ruvector-cluster]
version = "2.0.1"
optional = true
[dependencies.ruvector-core]
version = "2.0.1"
features = [
"simd",
"parallel",
]
default-features = false
[dependencies.ruvector-raft]
version = "2.0.1"
optional = true
[dependencies.ruvector-replication]
version = "2.0.1"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.simsimd]
version = "5.9"
optional = true
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.41"
features = [
"rt-multi-thread",
"sync",
"macros",
"rt-multi-thread",
"sync",
"macros",
"time",
"net",
]
optional = true
[dependencies.tonic]
version = "0.12"
features = ["transport"]
optional = true
[dependencies.tower]
version = "0.4"
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
version = "1.11"
features = [
"v4",
"serde",
"js",
"v4",
"serde",
]
[dependencies.xxhash-rust]
version = "0.8"
features = ["xxh3"]
optional = true
[dependencies.zstd]
version = "0.13"
optional = true
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.csv]
version = "1.3"
[dev-dependencies.mockall]
version = "0.13"
[dev-dependencies.proptest]
version = "1.5"
[dev-dependencies.tempfile]
version = "3.13"
[dev-dependencies.tokio-test]
version = "0.4"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[build-dependencies.pest_generator]
version = "2.7"
[lints.clippy]
absurd_extreme_comparisons = "allow"
approx_constant = "allow"
assertions_on_constants = "allow"
assign_op_pattern = "allow"
clone_on_copy = "allow"
cmp_owned = "allow"
collapsible_else_if = "allow"
collapsible_if = "allow"
collapsible_match = "allow"
collapsible_str_replace = "allow"
comparison_chain = "allow"
comparison_to_empty = "allow"
default_trait_access = "allow"
derivable_impls = "allow"
derive_partial_eq_without_eq = "allow"
doc_lazy_continuation = "allow"
doc_overindented_list_items = "allow"
elidable_lifetime_names = "allow"
empty_line_after_doc_comments = "allow"
erasing_op = "allow"
excessive_precision = "allow"
explicit_auto_deref = "allow"
explicit_iter_loop = "allow"
extra_unused_lifetimes = "allow"
field_reassign_with_default = "allow"
filter_map_bool_then = "allow"
filter_next = "allow"
float_cmp = "allow"
for_kv_map = "allow"
get_first = "allow"
identity_op = "allow"
if_same_then_else = "allow"
int_plus_one = "allow"
iter_cloned_collect = "allow"
iter_kv_map = "allow"
iter_nth_zero = "allow"
iter_skip_zero = "allow"
large_enum_variant = "allow"
len_zero = "allow"
let_and_return = "allow"
let_underscore_lock = "allow"
let_unit_value = "allow"
manual_clamp = "allow"
manual_div_ceil = "allow"
manual_flatten = "allow"
manual_map = "allow"
manual_memcpy = "allow"
manual_range_contains = "allow"
manual_strip = "allow"
map_clone = "allow"
map_entry = "allow"
match_like_matches_macro = "allow"
match_single_binding = "allow"
mem_replace_with_default = "allow"
min_max = "allow"
missing_const_for_fn = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
missing_safety_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
mut_range_bound = "allow"
needless_borrow = "allow"
needless_borrows_for_generic_args = "allow"
needless_collect = "allow"
needless_doctest_main = "allow"
needless_late_init = "allow"
needless_lifetimes = "allow"
needless_match = "allow"
needless_pass_by_ref_mut = "allow"
needless_question_mark = "allow"
needless_range_loop = "allow"
needless_return = "allow"
neg_multiply = "allow"
new_without_default = "allow"
non_canonical_partial_ord_impl = "allow"
nonminimal_bool = "allow"
only_used_in_recursion = "allow"
op_ref = "allow"
option_as_ref_deref = "allow"
or_fun_call = "allow"
out_of_bounds_indexing = "allow"
overly_complex_bool_expr = "allow"
partialeq_to_none = "allow"
ptr_arg = "allow"
redundant_clone = "allow"
redundant_closure = "allow"
redundant_closure_call = "allow"
redundant_field_names = "allow"
redundant_pattern = "allow"
redundant_pattern_matching = "allow"
redundant_static_lifetimes = "allow"
ref_option = "allow"
same_item_push = "allow"
should_implement_trait = "allow"
single_char_add_str = "allow"
single_char_lifetime_names = "allow"
single_char_pattern = "allow"
single_component_path_imports = "allow"
single_element_loop = "allow"
single_match = "allow"
single_match_else = "allow"
tabs_in_doc_comments = "allow"
to_string_in_format_args = "allow"
trivial_regex = "allow"
type_complexity = "allow"
unbuffered_bytes = "allow"
unnecessary_cast = "allow"
unnecessary_filter_map = "allow"
unnecessary_lazy_evaluations = "allow"
unnecessary_map_or = "allow"
unnecessary_min_or_max = "allow"
unnecessary_sort_by = "allow"
unnecessary_to_owned = "allow"
unnecessary_unwrap = "allow"
unnecessary_wraps = "allow"
unwrap_or_default = "allow"
useless_asref = "allow"
useless_attribute = "allow"
useless_conversion = "allow"
useless_format = "allow"
useless_let_if_seq = "allow"
useless_vec = "allow"
while_let_loop = "allow"
while_let_on_iterator = "allow"
wrong_self_convention = "allow"
zero_repeat_side_effects = "allow"
[lints.clippy.pedantic]
level = "allow"
priority = -1
[lints.rust]
dead_code = "allow"
elided_lifetimes_in_paths = "allow"
let_underscore_drop = "allow"
mismatched_lifetime_syntaxes = "allow"
unexpected_cfgs = "allow"
unused_assignments = "allow"
unused_attributes = "allow"
unused_comparisons = "allow"
unused_doc_comments = "allow"
unused_imports = "allow"
unused_must_use = "allow"
unused_mut = "allow"
unused_parens = "allow"
unused_variables = "allow"