Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/knut

crates/knut-graphdb/Cargo.toml

[package]
name = "knut-graphdb"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "Backend-agnostic graph-DB trait (high-level scene/neighbours/path/upsert ops) with a FalkorDB (Cypher) backend and an embedded CozoDB (Datalog, no container) backend."

[features]
# FalkorDB is the default backend so a consumer's stock build behaves exactly as
# it did before the abstraction (Cypher → FalkorExecutor).
default = ["falkordb"]
# The FalkorDB backend — wraps graphar-flight's FalkorExecutor (Cypher in, Arrow
# out). Optional so a Cozo-only, container-free build can drop the redis/flight tree.
falkordb = ["dep:graphar-flight"]
# The embedded CozoDB backend — an in-process Datalog store (mem engine, NO
# container, NO redis). Optional + heavier (miette/smartstring/…), so a lean
# FalkorDB-only build never pulls it.
cozo = ["dep:cozo"]

[dependencies]
# The FalkorDB executor korp already queried directly — the falkordb backend wraps it.
graphar-flight = { path = "../graphar-flight", version = "0.3.0", optional = true }
# Embedded Datalog store, the `mem` engine only (container-free, pure-Rust
# toolchain). `cozo-rayonfree` is edda's fork of CozoDB 0.7.6 with rayon removed
# at the source (see edda/vendor/cozo-rayonfree/Cargo.toml for why upstream
# cannot be built rayon-free), published on crates.io; the library is still named
# `cozo`, so `use cozo::…` is unchanged. Upstream needed `graph-algo` just to
# compile, which pulled rayon into knut; the fork deletes that feature and its
# fixed rules, none of which this backend calls (`shortest_path` is unsupported).
# Same dep as edda's nornir-graph, so knut and edda share one cozo.
cozo = { package = "cozo-rayonfree", version = "0.7.6", default-features = false, optional = true }
arrow-array = { workspace = true }
arrow-schema = { workspace = true }
async-trait = "0.1"
thiserror = { workspace = true }
tokio = { workspace = true }

[dev-dependencies]
tokio = { workspace = true }