crates/knut-rel2graph-bench/Cargo.toml
[package]
name = "knut-rel2graph-bench"
description = "Scalable benchmark + correctness harness for bifröst rel2graph: seeded synthetic relational databases → GraphMutation, asserted for correctness and timed as data volume scales"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
publish = false
[dependencies]
# The rel2graph engine under test — used through its PUBLIC API only
# (MappingSpec, the Transform fabric → GraphMutation, GraphPlan::from_mapping).
# Default features: pure Rust, no Spark / no live sink pulled in.
knut-bifrost = { path = "../knut-bifrost", version = "0.3.0" }
# The second projection: GraphPlan → thund Pipeline. `rel2graph` feature only
# (pulls knut-bifrost + the RON DSL) — no `native`/DataFusion, no live FalkorDB.
knut-thund = { path = "../knut-thund", version = "0.3.0", features = ["rel2graph"] }
arrow-array = { workspace = true }
arrow-schema = { workspace = true }
# Emit the generated source tables as parquet — the on-disk fixture that stands
# in for an Iceberg / object-store export, fed to `knut-flight`'s live-data seam
# (`Catalog::from_parquet_dir`). Only the parquet emitter needs it.
parquet = { workspace = true }
# Node-list / edge-list / oracle JSON export (the networkx bridge, N3). Only the
# exporter needs it; the correctness + timing paths stay serde-free.
serde_json = { workspace = true }
[[bin]]
name = "rel2graph-timing"
path = "src/bin/timing.rs"
# N3: dump one rel2graph result (the 12-table graph) as a stable node-list +
# edge-list + oracle JSON that `demo/rel2graph_networkx_demo.py` loads into a
# networkx.MultiDiGraph and asserts against.
[[bin]]
name = "rel2graph-export"
path = "src/bin/export.rs"