crates/nornir-build-info-flight/Cargo.toml
[package]
name = "nornir-build-info-flight"
version = "0.2.0"
edition = "2024"
description = "The Flight-backed BuildInfoSink for the nordisk constellation — ships build-info rows (nornir-build-thing's §f3 schema) over an Apache Arrow Flight endpoint (nornir-flight's do_put/do_get) instead of in-process. The ONE place that deps BOTH nornir-build-thing (the transport-agnostic BuildInfoSink trait + rows) and nornir-flight (the wire), keyed per build_id[/step_id] so a viz live-tail subscribes per sub-job. Rides arrow-56 (the Flight wire's arrow), column-identical to build-thing's canonical schema. Extracted from nornir per the shrink plan."
license = "MIT OR Apache-2.0"
repository = "https://git.gunnar.rs/nordisk/edda"
keywords = ["arrow", "flight", "build-info", "sink", "stream"]
categories = ["development-tools::build-utils", "network-programming"]
exclude = ["/.nornir/"]
[features]
default = []
# `testmatrix` — emit each Flight build-info surface's health (do_put / do_get)
# into the nornir test-matrix via `functional_status`. OFF BY DEFAULT: a
# compiled-out no-op with no nornir-testmatrix dep, exactly as it was in nornir.
testmatrix = ["dep:nornir-testmatrix", "nornir-testmatrix/testmatrix"]
# `build-info-arrow` — pin equality with build-thing's canonical arrow-58
# `build_info_schema` in the schema-drift guard test (forwards build-thing's own
# columnar binding). OFF by default: the arrow-56 Flight wire stands alone.
build-info-arrow = ["nornir-build-thing/build-info-arrow"]
[dependencies]
anyhow = "1"
# The transport-agnostic BuildInfoSink trait + BuildInfoRow + the §f3 schema
# constant. Path+version (like the other edda leaves) so the workspace resolves
# the local sibling.
nornir-build-thing = { version = "0.2.0", path = "../nornir-build-thing" }
# The shared Apache Arrow Flight transport (do_put/do_get + the nornir-service
# bearer-auth interceptor). Path+version.
nornir-flight = { version = "0.2.0", path = "../nornir-flight" }
# Arrow 56 — the Flight wire's arrow (arrow-flight 56 → tonic 0.13, matching
# nornir-service). Deliberately a different major from build-thing's arrow-58
# canonical binding; the columnizer here bridges the two over the same §f3 columns.
arrow-array = "59"
arrow-schema = "59"
tokio = { version = "1", features = ["rt", "macros", "sync"] }
futures = "0.3"
# Introspection-marker emitter — only compiled with `testmatrix`.
nornir-testmatrix = { version = "0.2.7", path = "../nornir-testmatrix", default-features = false, optional = true }
[dev-dependencies]
# The Flight server side (FlightServer/FlightRoutes/MemFlightStore) for the
# round-trip acceptance tests, plus a multi-thread runtime for `#[tokio::test]`.
nornir-flight = { path = "../nornir-flight" }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "net", "time"] }