ruvector-graph 2.2.3

Distributed Neo4j-compatible hypergraph database with SIMD optimization
Documentation
[package]

name = "ruvector-graph"

version.workspace = true

edition.workspace = true

rust-version.workspace = true

license.workspace = true

authors.workspace = true

repository.workspace = true

readme = "README.md"

description = "Distributed Neo4j-compatible hypergraph database with SIMD optimization"



[dependencies]

# RuVector dependencies

ruvector-core = { version = "2.0.1", path = "../ruvector-core", default-features = false, features = ["simd", "parallel"] }

ruvector-raft = { version = "2.0.1", path = "../ruvector-raft", optional = true }

ruvector-cluster = { version = "2.0.1", path = "../ruvector-cluster", optional = true }

ruvector-replication = { version = "2.0.1", path = "../ruvector-replication", optional = true }



# Storage and indexing (optional for WASM)

redb = { workspace = true, optional = true }

memmap2 = { workspace = true, optional = true }

hnsw_rs = { workspace = true, optional = true }



# SIMD and performance

simsimd = { workspace = true, optional = true }

rayon = { workspace = true }

crossbeam = { workspace = true }

num_cpus = "1.16"



# Serialization

rkyv = { workspace = true }

bincode = { workspace = true }

serde = { workspace = true }

serde_json = { workspace = true }



# Async runtime (optional for WASM)

tokio = { workspace = true, features = ["rt-multi-thread", "sync", "macros", "time", "net"], optional = true }

futures = { workspace = true, optional = true }



# Error handling and logging

thiserror = { workspace = true }

anyhow = { workspace = true }

tracing = { workspace = true }



# Data structures

dashmap = { workspace = true }

parking_lot = { workspace = true }

once_cell = { workspace = true }



# Math and numerics

ndarray = { workspace = true }

rand = { workspace = true }

rand_distr = { workspace = true }

ordered-float = "4.2"



# Time and UUID

chrono = { workspace = true }

uuid = { workspace = true, features = ["v4", "serde"] }



# Graph algorithms and partitioning

petgraph = "0.6"

roaring = "0.10"  # Roaring bitmaps for label indexes



# Query parsing (Cypher)

nom = "7.1"

nom_locate = "4.2"

pest = { version = "2.7", optional = true }

pest_derive = { version = "2.7", optional = true }

lalrpop-util = { version = "0.21", optional = true }



# Cache

lru = "0.16"

moka = { version = "0.12", features = ["future"], optional = true }



# Compression (for storage optimization, optional for WASM)

zstd = { version = "0.13", optional = true }

lz4 = { version = "1.24", optional = true }



# Networking (for federation)

tonic = { version = "0.12", features = ["transport"], optional = true }

prost = { version = "0.13", optional = true }

tower = { version = "0.4", optional = true }

hyper = { version = "1.4", optional = true }



# Hashing for sharding

blake3 = { version = "1.5", optional = true }

xxhash-rust = { version = "0.8", features = ["xxh3"], optional = true }



# Metrics

prometheus = { version = "0.14", optional = true }



[dev-dependencies]

criterion = { workspace = true }

proptest = { workspace = true }

mockall = { workspace = true }

tempfile = "3.13"

tracing-subscriber = { workspace = true }

tokio-test = "0.4"



# Benchmark datasets

csv = "1.3"



[build-dependencies]

pest_generator = "2.7"



[features]

default = ["full"]



# Full feature set (non-WASM)

full = ["simd", "storage", "async-runtime", "compression", "hnsw_rs", "ruvector-core/hnsw"]



# SIMD optimizations

simd = ["ruvector-core/simd", "simsimd"]



# Storage backends

storage = ["redb", "memmap2"]



# Async runtime support

async-runtime = ["tokio", "futures", "moka"]



# Compression support

compression = ["zstd", "lz4"]



# WASM-compatible minimal build (parser + core graph operations)

wasm = []



# Distributed deployment with RAFT

distributed = ["ruvector-raft", "ruvector-cluster", "ruvector-replication", "blake3", "xxhash-rust", "full"]



# Cross-cluster federation

federation = ["tonic", "prost", "tower", "hyper", "distributed"]



# Advanced query optimization

jit = []  # JIT compilation for hot paths (future)



# Monitoring and metrics

metrics = ["prometheus"]



# Full-text search support

fulltext = []



# Geospatial indexing

geospatial = []



# Temporal graph support (time-varying graphs)

temporal = []



# Query parser implementations

cypher-pest = ["pest", "pest_derive"]

cypher-lalrpop = ["lalrpop-util"]



[[example]]

name = "test_cypher_parser"

path = "examples/test_cypher_parser.rs"



[[bench]]

name = "new_capabilities_bench"

harness = false



[[bench]]

name = "typed_graph_bench"

harness = false



[lib]

crate-type = ["rlib"]

bench = false



[package.metadata.docs.rs]

all-features = true

rustdoc-args = ["--cfg", "docsrs"]



# Research-tier crate, doc/style churn deferred per workspace cleanup pass.

# Style-only clippy lints downgraded for all targets; correctness lints remain.

[lints.rust]

dead_code = "allow"

unused_variables = "allow"

unused_imports = "allow"

unused_mut = "allow"

unused_assignments = "allow"

unused_parens = "allow"

unused_doc_comments = "allow"

unused_attributes = "allow"

unused_comparisons = "allow"

unused_must_use = "allow"

unexpected_cfgs = "allow"

elided_lifetimes_in_paths = "allow"

mismatched_lifetime_syntaxes = "allow"

let_underscore_drop = "allow"



[lints.clippy]

pedantic = { level = "allow", priority = -1 }

module_name_repetitions = "allow"

must_use_candidate = "allow"

missing_errors_doc = "allow"

missing_panics_doc = "allow"

unnecessary_lazy_evaluations = "allow"

comparison_chain = "allow"

needless_range_loop = "allow"

redundant_closure = "allow"

useless_vec = "allow"

needless_borrows_for_generic_args = "allow"

map_entry = "allow"

manual_strip = "allow"

single_match = "allow"

collapsible_if = "allow"

collapsible_match = "allow"

collapsible_else_if = "allow"

large_enum_variant = "allow"

should_implement_trait = "allow"

only_used_in_recursion = "allow"

field_reassign_with_default = "allow"

iter_cloned_collect = "allow"

explicit_auto_deref = "allow"

let_unit_value = "allow"

assertions_on_constants = "allow"

mem_replace_with_default = "allow"

excessive_precision = "allow"

manual_div_ceil = "allow"

or_fun_call = "allow"

unwrap_or_default = "allow"

manual_range_contains = "allow"

manual_clamp = "allow"

single_match_else = "allow"

single_char_add_str = "allow"

useless_format = "allow"

comparison_to_empty = "allow"

filter_map_bool_then = "allow"

unnecessary_filter_map = "allow"

redundant_pattern_matching = "allow"

iter_kv_map = "allow"

needless_borrow = "allow"

ptr_arg = "allow"

new_without_default = "allow"

default_trait_access = "allow"

clone_on_copy = "allow"

nonminimal_bool = "allow"

absurd_extreme_comparisons = "allow"

useless_conversion = "allow"

type_complexity = "allow"

get_first = "allow"

needless_return = "allow"

redundant_field_names = "allow"

iter_nth_zero = "allow"

redundant_clone = "allow"

needless_collect = "allow"

same_item_push = "allow"

while_let_loop = "allow"

while_let_on_iterator = "allow"

for_kv_map = "allow"



redundant_pattern = "allow"

let_and_return = "allow"

needless_lifetimes = "allow"

filter_next = "allow"

manual_map = "allow"

redundant_closure_call = "allow"

trivial_regex = "allow"

int_plus_one = "allow"

cmp_owned = "allow"

redundant_static_lifetimes = "allow"

single_component_path_imports = "allow"

option_as_ref_deref = "allow"

map_clone = "allow"

if_same_then_else = "allow"

partialeq_to_none = "allow"

wrong_self_convention = "allow"

min_max = "allow"

neg_multiply = "allow"

needless_pass_by_ref_mut = "allow"

useless_attribute = "allow"

single_char_pattern = "allow"

iter_skip_zero = "allow"

unnecessary_unwrap = "allow"

ref_option = "allow"

missing_const_for_fn = "allow"

needless_question_mark = "allow"

erasing_op = "allow"

float_cmp = "allow"

approx_constant = "allow"

op_ref = "allow"

let_underscore_lock = "allow"

useless_let_if_seq = "allow"

extra_unused_lifetimes = "allow"

derive_partial_eq_without_eq = "allow"

needless_late_init = "allow"

derivable_impls = "allow"

unnecessary_to_owned = "allow"

missing_safety_doc = "allow"

tabs_in_doc_comments = "allow"

doc_lazy_continuation = "allow"

empty_line_after_doc_comments = "allow"

doc_overindented_list_items = "allow"

elidable_lifetime_names = "allow"

non_canonical_partial_ord_impl = "allow"

out_of_bounds_indexing = "allow"

overly_complex_bool_expr = "allow"

len_zero = "allow"

needless_doctest_main = "allow"

match_like_matches_macro = "allow"



identity_op = "allow"

match_single_binding = "allow"

needless_match = "allow"

unnecessary_map_or = "allow"

unnecessary_cast = "allow"

collapsible_str_replace = "allow"

single_element_loop = "allow"

unnecessary_min_or_max = "allow"

unnecessary_wraps = "allow"

manual_flatten = "allow"

manual_memcpy = "allow"

explicit_iter_loop = "allow"

zero_repeat_side_effects = "allow"

unbuffered_bytes = "allow"

to_string_in_format_args = "allow"

useless_asref = "allow"

single_char_lifetime_names = "allow"

mut_range_bound = "allow"

unnecessary_sort_by = "allow"

assign_op_pattern = "allow"