graphmind 0.7.0

High-performance distributed graph database with OpenCypher support, RESP protocol, multi-tenancy, vector search, and web visualizer
Documentation
[workspace]
members = [
    ".", "crates/graphmind-graph-algorithms",
    "crates/graphmind-optimization",
    "crates/graphmind-sdk",
    "cli",
]
exclude = ["sdk/python"]

[package]
name = "graphmind"
version = "0.7.0"
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]
# Core dependencies
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
indexmap = "2.1"
thiserror = "1.0"
anyhow = "1.0"

# Query parsing
pest = "2.7"
pest_derive = "2.7"

# Async runtime
tokio = { version = "1.35", features = ["full"] }
bytes = "1.5"

# Logging
tracing = "0.1"
tracing-subscriber = "0.3"

# Persistence (Phase 3)
rocksdb = { version = "0.22", default-features = false, features = ["lz4", "zstd"], optional = true }
bincode = { version = "1.3", optional = true }
chrono = "0.4"

# High Availability (Phase 4)
openraft = { version = "0.9", features = ["serde"], optional = true }
async-trait = "0.1"
serde_yaml = { version = "0.9", optional = true }

# RDF/SPARQL Support (Phase 5)
oxrdf = { version = "0.2", optional = true }              # RDF primitives (IRI, Literal, Triple, Quad)
oxiri = { version = "0.2", optional = true }              # IRI handling
rio_api = { version = "0.8", optional = true }            # RDF I/O API
rio_turtle = { version = "0.8", optional = true }         # Turtle parser/serializer
rio_xml = { version = "0.8", optional = true }            # RDF/XML parser/serializer
spargebra = { version = "0.3", optional = true }          # SPARQL 1.1 parser
sparesults = { version = "0.2", optional = true }         # SPARQL results formats
# HTTP server (for SPARQL endpoint and Visualizer)
axum = { version = "0.7", features = ["multipart"], optional = true }  # HTTP framework
tower = { version = "0.5", features = ["util"], optional = true }  # Middleware
tower-http = { version = "0.5", features = ["fs", "cors"], optional = true }
http-body-util = "0.1"     # Body utilities for HTTP testing
rust-embed = { version = "8.0", optional = true }         # Embed static assets in binary
percent-encoding = { version = "2.3", optional = true }   # URL encoding
mime = { version = "0.3", optional = true }               # MIME types

# Vector Search (Phase 6)
hnsw_rs = { version = "0.2.1", optional = true }
rand = "0.8"
regex = "1"
lru = "0.12"

# Snapshot compression
flate2 = "1.0"

# Optimization Engine (Phase 7)
graphmind-optimization = { path = "crates/graphmind-optimization", version = "0.7.0", optional = true }
graphmind-graph-algorithms = { path = "crates/graphmind-graph-algorithms", version = "0.7.0", 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"
walkdir = "2"

[[bench]]
name = "query_benchmark"
harness = false

[[bench]]
name = "storage_benchmark"
harness = false

[[bench]]
name = "algorithm_benchmark"
harness = false

[profile.release]
opt-level = 3
lto = true
codegen-units = 1