crates/nornir-hash/Cargo.toml
[package]
name = "nornir-hash"
version = "0.1.1"
edition = "2021"
description = "The ONE shared content-hash primitive for the nordisk constellation — lowercase-hex SHA-256 of bytes / files / streams (`sha256_hex`, `sha256_file`, streaming `Sha256Hasher`) plus a dependency-free `hex_encode`/`hex_decode` round-trip. REUSE (LAW #5): every content-addressed store (nornir warehouse blob_store, holger retention/backends, Skidbladnir archive, skade bench, nornir-guard, build-thing provenance) consumes this leaf instead of re-rolling `Sha256::new(); hex(...)`. Dep-light: only `sha2`; hex is hand-rolled."
license = "MIT OR Apache-2.0"
repository = "https://git.gunnar.rs/nordisk/edda"
keywords = ["sha256", "hash", "hex", "content-addressed", "checksum"]
categories = ["cryptography", "encoding"]
exclude = ["/.nornir/"]
[features]
default = []
# `testmatrix` — emit each functional surface's health (known SHA-256 vectors,
# hex round-trip, streaming-vs-oneshot agreement) into the nornir test-matrix
# via `functional_status`. OFF BY DEFAULT: a compiled-out no-op with no nornir
# dep, so a lean/library build carries neither the emitter nor testmatrix.
testmatrix = ["dep:nornir-testmatrix", "nornir-testmatrix/testmatrix"]
[dependencies]
# The SHA-256 core. `sha2` is the constellation-wide choice already vendored by
# every consumer; hex is hand-rolled here so this leaf pulls NOTHING else.
sha2 = "0.11"
# Introspection-marker emitter — only compiled with `testmatrix`. Path+version
# (like the other edda leaves) so the workspace resolves the local sibling.
nornir-testmatrix = { version = "0.2.7", path = "../nornir-testmatrix", default-features = false, optional = true }