[package]
name = "grafeo-engine"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
description = "Query engine and database management for Grafeo"
[dependencies]
grafeo-common.workspace = true
grafeo-core = { workspace = true, default-features = false }
grafeo-adapters = { workspace = true, default-features = false }
thiserror.workspace = true
anyhow.workspace = true
arcstr.workspace = true
smallvec.workspace = true
hashbrown.workspace = true
indexmap.workspace = true
parking_lot.workspace = true
crossbeam = { workspace = true, optional = true }
rayon = { workspace = true, optional = true }
serde.workspace = true
bincode.workspace = true
regex = { workspace = true, optional = true }
regex-lite = { workspace = true, optional = true }
md5 = { workspace = true, optional = true }
sha1 = { workspace = true, optional = true }
sha2 = { workspace = true, optional = true }
tracing.workspace = true
ort = { version = "2.0.0-rc.12", optional = true, default-features = false, features = ["std", "ndarray", "load-dynamic", "api-24"] }
tokenizers = { version = "0.22", optional = true, default-features = false, features = ["onig"] }
hf-hub = { version = "0.5", optional = true }
[dev-dependencies]
criterion.workspace = true
tempfile.workspace = true
serde_json = "1"
tokio.workspace = true
[features]
default = ["gql", "parallel", "wal", "spill", "mmap", "regex"]
regex = ["dep:regex", "grafeo-core/regex"]
regex-lite = ["dep:regex-lite", "grafeo-core/regex-lite"]
gql = ["grafeo-adapters/gql"]
cypher = ["grafeo-adapters/cypher"]
sparql = ["grafeo-adapters/sparql"]
gremlin = ["grafeo-adapters/gremlin"]
graphql = ["grafeo-adapters/graphql"]
sql-pgq = ["grafeo-adapters/sql-pgq"]
rdf = ["grafeo-core/rdf", "grafeo-adapters/rdf", "md5", "sha1", "sha2"]
parallel = ["rayon", "crossbeam", "grafeo-core/parallel", "grafeo-adapters/parallel"]
algos = ["grafeo-adapters/algos"]
wal = ["grafeo-adapters/wal"]
grafeo-file = ["grafeo-adapters/grafeo-file"]
spill = ["grafeo-core/spill"]
mmap = ["grafeo-core/mmap"]
languages = ["gql", "cypher", "sparql", "gremlin", "graphql", "sql-pgq"]
ai = ["vector-index", "text-index", "hybrid-search", "cdc"]
storage = ["wal", "grafeo-file", "spill", "mmap"]
embedded = ["gql", "ai", "algos", "parallel", "regex", "jsonl-import"]
browser = ["gql", "regex-lite"]
server = ["full"]
full = ["languages", "ai", "rdf", "parallel", "algos", "storage", "jsonl-import", "parquet-import"]
jsonl-import = ["grafeo-core/jsonl-import"]
parquet-import = ["grafeo-core/parquet-import"]
vector-index = ["grafeo-core/vector-index"]
text-index = ["grafeo-core/text-index"]
hybrid-search = ["grafeo-core/hybrid-search", "text-index", "vector-index"]
cdc = []
embed = ["ort", "tokenizers", "hf-hub"]
testing-crash-injection = ["grafeo-core/testing-crash-injection"]
[lints]
workspace = true
[[bench]]
name = "query_bench"
harness = false