[workspace]
members = [
".", "crates/graphmind-graph-algorithms",
"crates/graphmind-optimization",
"crates/graphmind-sdk",
"cli",
]
exclude = ["sdk/python"]
[package]
name = "graphmind"
version = "0.6.4"
edition = "2021"
authors = ["Graphmind Team"]
description = "High-performance distributed graph database with OpenCypher support, RESP protocol, multi-tenancy, vector search, and web visualizer"
license = "Apache-2.0"
repository = "https://github.com/fab679/graphmind"
homepage = "https://fab679.github.io/graphmind/"
documentation = "https://fab679.github.io/graphmind/docs/getting-started"
readme = "README.md"
keywords = ["graph-database", "cypher", "knowledge-graph", "vector-search", "graph"]
categories = ["database-implementations", "data-structures"]
[features]
default = ["server", "persistence", "raft", "rdf", "vector", "nlq", "algorithms"]
server = ["dep:axum", "dep:tower", "dep:tower-http", "dep:rust-embed", "dep:mime", "dep:percent-encoding", "dep:metrics", "dep:metrics-exporter-prometheus"]
persistence = ["dep:rocksdb", "dep:bincode"]
raft = ["dep:openraft", "dep:serde_yaml", "persistence"]
rdf = ["dep:oxrdf", "dep:oxiri", "dep:rio_api", "dep:rio_turtle", "dep:rio_xml", "dep:spargebra", "dep:sparesults"]
vector = ["dep:hnsw_rs"]
nlq = ["dep:reqwest"]
algorithms = ["dep:graphmind-graph-algorithms", "dep:graphmind-optimization", "dep:ndarray"]
full = ["server", "persistence", "raft", "rdf", "vector", "nlq", "algorithms"]
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
indexmap = "2.1"
thiserror = "1.0"
anyhow = "1.0"
pest = "2.7"
pest_derive = "2.7"
tokio = { version = "1.35", features = ["full"] }
bytes = "1.5"
tracing = "0.1"
tracing-subscriber = "0.3"
rocksdb = { version = "0.22", default-features = false, features = ["lz4", "zstd"], optional = true }
bincode = { version = "1.3", optional = true }
chrono = "0.4"
openraft = { version = "0.9", features = ["serde"], optional = true }
async-trait = "0.1"
serde_yaml = { version = "0.9", optional = true }
oxrdf = { version = "0.2", optional = true }
oxiri = { version = "0.2", optional = true }
rio_api = { version = "0.8", optional = true }
rio_turtle = { version = "0.8", optional = true }
rio_xml = { version = "0.8", optional = true }
spargebra = { version = "0.3", optional = true }
sparesults = { version = "0.2", optional = true }
axum = { version = "0.7", features = ["multipart"], optional = true }
tower = { version = "0.5", features = ["util"], optional = true }
tower-http = { version = "0.5", features = ["fs", "cors"], optional = true }
http-body-util = "0.1"
rust-embed = { version = "8.0", optional = true }
percent-encoding = { version = "2.3", optional = true }
mime = { version = "0.3", optional = true }
hnsw_rs = { version = "0.2.1", optional = true }
rand = "0.8"
regex = "1"
lru = "0.12"
flate2 = "1.0"
graphmind-optimization = { path = "crates/graphmind-optimization", version = "0.6.4", optional = true }
graphmind-graph-algorithms = { path = "crates/graphmind-graph-algorithms", version = "0.6.4", optional = true }
ndarray = { version = "0.15", optional = true }
reqwest = { version = "0.13.1", features = ["json"], optional = true }
metrics = { version = "0.24", optional = true }
metrics-exporter-prometheus = { version = "0.16", optional = true }
clap = { version = "4", features = ["derive"] }
toml_crate = { package = "toml", version = "0.8" }
[dev-dependencies]
tempfile = "3.8"
criterion = "0.5"
graphmind-sdk = { path = "crates/graphmind-sdk" }
http-body-util = "0.1"
[[bench]]
name = "graph_benchmarks"
harness = false
[[bench]]
name = "full_benchmark"
harness = false
[[bench]]
name = "vector_benchmark"
harness = false
[[bench]]
name = "graphalytics_benchmark"
harness = false
[[bench]]
name = "ldbc_benchmark"
harness = false
[[bench]]
name = "ldbc_bi_benchmark"
harness = false
[[bench]]
name = "finbench_benchmark"
harness = false
[[bench]]
name = "mvcc_benchmark"
harness = false
[[bench]]
name = "late_materialization_bench"
harness = false
[[bench]]
name = "graph_optimization_benchmark"
harness = false
[profile.release]
opt-level = 3
lto = true
codegen-units = 1