crates/nornir-wire/Cargo.toml
[package]
name = "nornir-wire"
version = "0.1.3"
edition = "2021"
description = "The nornir wire/transport contract: owns proto/nornir.proto and its generated nornir.v1 prost+tonic client/server stubs (nornir_wire::pb). The one home for the nornir gRPC codegen, consumed by nornir-server (producer) and the read-client(s) so neither carries its own include_proto! copy."
license = "MIT OR Apache-2.0"
repository = "https://git.gunnar.rs/nordisk/edda"
keywords = ["tonic", "grpc", "protobuf", "nornir"]
categories = ["development-tools", "network-programming"]
exclude = ["/.nornir/"]
build = "build.rs"
[features]
# Generate both the client and server stubs by default — the wire leaf is
# consumed by BOTH nornir-server (server stubs) and the read-clients + MCP/CLI
# (client stubs). A consumer that wants only one half can turn default off and
# pick `client` / `server`. Mirrors nornir/build.rs's old
# build_server(server) / build_client(mcp||server||viz) gate.
default = ["client", "server"]
client = []
server = []
[dependencies]
# The tonic runtime the generated stubs need — same 0.13 / feature set nornir
# and nornir-service pin, so cargo unifies to one tonic and the re-exported
# `pb` types are the same across the workspace.
tonic = { version = "0.14", default-features = false, features = ["router", "transport", "codegen"] }
prost = { version = "0.14" }
tonic-prost = { version = "0.14" }
# The shared client-side bearer stamper (Law #1) — the wire leaf re-uses it so
# a consumer building a client from `pb` has the one Authorization builder to
# hand. No edge back to nornir.
nornir-service = { version = "0.1.6", path = "../nornir-service" }
# The serde view-model DTOs live in `nornir_wire::view` (the wire-stable shapes
# both the server producer and the read-client(s) share). `serde`/`serde_json`
# carry them across the JSON wire; `uuid`/`chrono` are the id + timestamp field
# types the timeline model uses (same feature set nornir/nornir-depgraph pin so
# cargo unifies).
serde = { version = "1", features = ["derive"] }
serde_json = "1"
uuid = { version = "1", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
# The cross-repo dependency-graph LEAF (no warehouse, no egui, no nornir dep) that
# owns `DepGraphSnapshot`/`CrossRepoEdge`/`DepKind`. The relocated `view::timeline`
# model embeds `DepGraphSnapshot`, so the wire leaf re-uses the leaf type directly
# instead of mirroring it — no cycle (nornir-depgraph depends on neither
# nornir-wire nor nornir).
nornir-depgraph = { version = "0.1.2", path = "../nornir-depgraph" }
[build-dependencies]
# Pure-Rust proto toolchain (no vendored protoc / no C) — matches nornir's
# zero-shell build law. Lifted verbatim from nornir/build.rs.
tonic-prost-build = { version = "0.14" }
protox = "0.9"