znippy-compress/Cargo.toml
[package]
name = "znippy-compress"
# 0.9.13: local source DRIFTED from the published 0.9.12 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.0"
edition = "2024"
authors = ["Ignalina ApS"]
description = "Compression logic 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 = ["openzl"]
# Passthrough for `znippy-common/openzl` — the OpenZL codec, whose `-sys` crate
# compiles its vendored C sources with `cc` at COMPILE time.
#
# ON by default, so this crate's default build is byte-unchanged. It exists so a
# consumer can actually reach the switch: znippy-common has had `openzl` as an
# optional feature since 2026-08-03, but this crate took znippy-common with
# default features, and cargo unions features across every edge — so a consumer
# setting `default-features = false` on its own znippy-common edge still got the
# codec through this one. A feature is only selectable if every path to it can
# be switched off.
openzl = ["znippy-common/openzl"]
# `testmatrix` — route this crate's `functional_status(component, check, ok,
# detail)` markers (the slot_packer / stream_packer run-completion rows) 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 compressor
# carries zero cost. Build `--features testmatrix` so `nornir test` SEES the
# ordered-sink compress path's health.
testmatrix = ["dep:nornir-testmatrix", "nornir-testmatrix/testmatrix"]
[dependencies]
walkdir = "2.5.0"
blake3 = "1.8.2"
anyhow = "1.0.100"
crossbeam-channel = "0.5.15"
arrow = "59"
znippy-common = { version = "0.10.0", path = "../znippy-common", default-features = false }
# 0.1.25 (not 0.1.13): `slot_packer` uses the COALESCING revolver mode —
# `ChunkRevolver::with_coalescing`, `Filler`, `PackedSlice`, `Returner`,
# `claim_slot`. That surface landed in rotaryengine 0.1.12, re-exported by
# znippy-zoomies 0.1.25. The old `0.1.13` floor was a lie: a resolve was free
# to pick 0.1.24 (rotaryengine 0.1.11), which has none of it — 4
# unresolved-import / no-such-method errors at publish-verify time. Gate B
# caught exactly that; the floor must name the version the code needs.
znippy-zoomies = { version = "0.1.25", path = "../../znippy-zoomies" }
log = "0.4.28"
io-uring = "0.7"
libc = "0.2"
# testmatrix feature only; path dep to the sibling nornir repo, off by default.
# `[patch.crates-io]` (root manifest) resolves it to the local 0.2.0 checkout.
nornir-testmatrix = { version = "0.2", default-features = false, optional = true }