zencodec 0.1.26

Shared traits and types for zen* image codecs
Documentation
[workspace]
# zencodec (this manifest's package) is the root member; zencodec-testkit is a
# dev/conformance helper that depends on zencodec by path and is never published
# alongside it.
members = ["zencodec-testkit"]
# `fuzz/` is its own cargo-fuzz package (separate lockfile + targets); excluding
# it lets `cargo fuzz build/run` resolve it standalone instead of erroring that
# it "believes it's in a workspace when it's not".
# `apidoc/` is the CI-free public-API snapshot runner: excluded so plain
# `cargo test` and every CI job never compile its dependency tree or run
# rustdoc. Regenerate via `just api-doc`.
exclude = ["fuzz", "apidoc"]
resolver = "3"

[package]
name = "zencodec"
version = "0.1.26"
edition = "2024"
rust-version = "1.88"
license = "Apache-2.0 OR MIT"
description = "Shared traits and types for zen* image codecs"
categories = ["multimedia::images"]
keywords = ["image", "codec", "traits"]
repository = "https://github.com/imazen/zencodec"
# crates.io renders the trimmed, badge-free README.crates.md (generated from
# README.md by zenutils gen-readme-crates.sh). The full GitHub README.md keeps
# its badge row + nav and is not shipped in the published tarball.
readme = "README.crates.md"
include = [
    "/src/**",
    "/tests/**",
    "/examples/**",
    "/README.crates.md",
    "/CHANGELOG.md",
    "/LICENSE*",
]

[package.metadata.docs.rs]
# Build docs with `std` so the `CodecIoKind::kind` accessor and the
# `From<std::io::*>` impls are documented and the gated intra-doc link resolves.
all-features = true

[lib]
name = "zencodec"

[features]
# Opt-in: lets `ErrorCategory::Io`'s `CodecIoKind` carry a `std::io::ErrorKind`.
# The crate is `#![no_std]` by default; this only pulls in `std` for that one
# payload. When `core::io::ErrorKind` stabilizes this feature becomes a no-op.
std = []

[dependencies]
# Published manifest uses crates.io versions (CI + `cargo publish` build the
# real artifact). Local development builds against the in-tree zen sources via
# a gitignored `.cargo/config.toml` `paths` override — see CONTRIBUTING note.
zenpixels = { version = "0.2.14", features = ["icc"] }
almost-enough = { version = "0.4.4", default-features = false, features = ["alloc"] }
enough = "0.4.4"
whereat = { version = "0.1.5" }

[dev-dependencies]
# Differential-test oracle for the EXIF parser (tests/exif_differential.rs).
# Pure-Rust, BSD-2-Clause; only built for tests, never shipped.
kamadak-exif = "0.6.1"
zenbench = "0.1.8"
thiserror = "2"
walkdir = "2.5.0"
rayon = "1.10.0"
moxcms = { version = ">=0.8.1, <0.10", features = ["options"] }

[[bench]]
name = "exif_filter"
harness = false