znippy-cli/Cargo.toml
[package]
name = "znippy-cli"
# 0.9.10: local source DRIFTED from the published 0.9.9 at the same version number.
# crates.io bytes are immutable, so the edit only reaches consumers as a new
# version. Bumped 2026-08-23 to unblock the release cascade — holger patches
# znippy to this checkout, which makes 19 holger crates unpublishable fork riders.
version = "0.10.1"
edition = "2024"
authors = ["Ignalina ApS"]
description = "CLI for Znippy, a parallel chunked compression system."
license = "MIT"
repository = "https://git.gunnar.rs/nordisk/znippy"
readme = "../README.md"
categories = ["compression", "filesystem", "data-structures"]
keywords = ["compression", "openzl", "parallel", "arrow", "blake3"]
# Development notes, agent instructions and machine-local tooling stay in the
# repository; they are not part of the published crate.
exclude = [
".nornir/",
]
[features]
default = []
# Opt-in `--meta-format iceberg`. Off by default so the standard CLI stays lean
# (the iceberg backend pulls tokio + iceberg + parquet + arrow-57).
iceberg = ["dep:znippy-iceberg"]
# Opt-in detached CMS provenance: `compress --sign` / `verify --signed`. Off by
# default so the standard CLI pulls in zero RustCrypto. Just threads the ready
# `znippy-common` sign API onto the CLI — never on the compress hot path.
sign = ["znippy-common/sign"]
# `testmatrix` — route the CLI's `functional_status(component, check, ok, detail)`
# markers to the nornir warehouse via the nornir-testmatrix emitter. OFF by
# default: the wrapper compiles to an `#[inline]` no-op with no nornir dep, so the
# shipped CLI carries zero cost. Build `--features testmatrix` (optionally with
# `sign`) so `nornir test` SEES the signing/verify/run surfaces.
testmatrix = ["dep:nornir-testmatrix", "nornir-testmatrix/testmatrix"]
[dependencies]
clap = { version = "4.5.51", features = ["derive"] }
anyhow = { version = "1.0.100" }
znippy-compress = { version = "0.10.0", path = "../znippy-compress" }
znippy-decompress = { version = "0.10.0", path = "../znippy-decompress" }
znippy-common = { version = "0.10.6", path = "../znippy-common", features = ["host-decompressors", "wasm-plugins"] }
# Main's PATHS (the plugins moved into `plugins/native/`) with the release
# branch's VERSIONS. The branch bumped the versions while still on the old flat
# paths, so neither side was right on its own: its paths no longer exist, and
# main's versions sit below what is already on crates.io.
znippy-plugin-maven = { version = "0.10.0", path = "../plugins/native/znippy-plugin-maven", features = ["host-decompressors"] }
znippy-plugin-python = { version = "0.10.0", path = "../plugins/native/znippy-plugin-python", features = ["host-decompressors"] }
znippy-plugin-media = { version = "0.10.0", path = "../plugins/native/znippy-plugin-media" }
znippy-plugin-skidbladnir = { version = "0.2.0", path = "../plugins/native/znippy-plugin-skidbladnir" }
znippy-plugin-git = { version = "0.2.0", path = "../plugins/native/znippy-plugin-git" }
znippy-plugin-rust-toolchain = { version = "0.2.0", path = "../plugins/native/znippy-plugin-rust-toolchain" }
# ELF binaries with provenance (type_id 7). It PROMOTES the filename-only `elf`
# skeleton that used to live in znippy-common; that stub is deleted, so the name
# `elf` resolves to exactly one handler. See .nornir/elf-design.md.
znippy-plugin-elf = { version = "0.2.0", path = "../plugins/native/znippy-plugin-elf" }
znippy-iceberg = { version = "0.2.0", path = "../znippy-iceberg", optional = true }
env_logger = { version = "0.11.8" }
# ── testmatrix feature ──────────────────────────────────────────────────────
# Path dep to the sibling nornir-testmatrix (≥0.2, the `functional_status`
# emitter). Optional + default-features off so the default CLI never pulls it;
# gated behind the `testmatrix` feature above.
nornir-testmatrix = { version = "0.2", default-features = false, optional = true }
[dev-dependencies]
tempfile = "3"