[package]
name = "tintbox"
version = "0.3.0"
edition = "2021"
license = "MIT"
description = "A pure-Rust, full-parity reimplementation of Little CMS (lcms2) — the ICC color-management engine. Memory-safe, no C, verified bit-identical to lcms2 by differential testing."
repository = "https://github.com/RayVR/tintbox"
readme = "../../README.md"
keywords = ["color", "icc", "cms", "color-management", "lcms"]
categories = ["graphics", "multimedia::images"]
# Ship ONLY the library. tests/, benches/, and examples/ all reference the
# test-only `tintbox-oracle` (a path dev-dep cargo strips on publish) and/or the
# vendored testbed, so they can't compile/run from a published package — and
# consumers never build a dependency's tests/benches/examples anyway. (These stay
# on disk for local `cargo test`/`bench`/`run --example`; only packaging skips them.)
exclude = ["tests/**", "benches/**", "examples/**"]

# `cfg(kani)` gates the bounded-model-checking proofs (src/profile/types/lut.rs),
# compiled only under `cargo kani`. Declare it so the check-cfg lint doesn't flag
# it as unknown in normal builds.
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(kani)'] }

[features]
default = ["std"]
std = []
file-io = ["std"]
native-floor = []
# Optional SIMD acceleration via the `wide` crate (safe API, stable, wasm-OK).
# When OFF (the default) the scalar kernels run and behavior is byte-for-byte as
# today. Every SIMD kernel is bit-identical to its scalar counterpart and to
# lcms2 `cmsFLAGS_NOOPTIMIZE`, verified by unit tests + the differential oracle.
simd = ["dep:wide"]

[dev-dependencies]
criterion = "0.8.2"
tintbox-oracle = { path = "../tintbox-oracle" }

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

[dependencies]
wide = { version = "1.5.0", optional = true }
