statumen 0.3.0

Statumen whole-slide image reader
Documentation
[package]
name = "statumen"
version = "0.3.0"
edition = "2021"
license = "Apache-2.0"
description = "Statumen whole-slide image reader"
repository = "https://github.com/frames-sg/statumen"
homepage = "https://github.com/frames-sg/statumen"
documentation = "https://docs.rs/statumen"
authors = ["Statumen contributors"]
keywords = ["whole-slide", "microscopy", "tiff", "pathology"]
categories = ["multimedia::images", "science"]
# MSRV policy: track the latest stable Rust release. Bumping `rust-version`
# is a minor-version bump for this crate.
rust-version = "1.94"
readme = "README.md"
exclude = [
    "benches/**",
    "scripts/**",
    "docs/**",
    ".github/**",
    "typos.toml",
    "architecture.md",
]
# Disable cargo's auto-discovery of binaries from src/bin/*.rs so that the
# shared `bench_common.rs` (which has no `main`) is not treated as a binary
# target. The `wsi_bench` and `openslide_bench` binaries are listed
# explicitly via [[bin]] below.
autobins = false

[features]
default = []
# Enables the wsi_bench binary (no system deps).
bench = []
# Enables the openslide_bench binary (requires libopenslide on PATH via pkg-config).
openslide-bench = []
# Enables OpenSlide compatibility-oracle parity tests/benches via libloading.
# Off by default; CI matrix runs with and without.
parity-openslide = []
# Enables Metal-backed parity comparisons (signinum CPU vs Metal).
# Off by default; macOS only; CI matrix runs with and without.
parity-metal = []
# Enables Metal-backed device payload plumbing for Phase 5.
metal = ["dep:metal", "dep:signinum-jpeg-metal", "dep:signinum-j2k-metal"]
cuda = []

[dependencies]
image = { version = "0.25", default-features = false, features = ["bmp", "png", "pnm"] }
quick-xml = "0.36"
lru = "0.18"
thiserror = "2"
sha2 = "0.10"
byteorder = "1"
tracing = "0.1"
rayon = "1.10"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
base64 = "0.22"
flate2 = "1"
tempfile = "3"
zstd = "0.13"
signinum-jpeg = "0.4"
signinum-core = "0.4"
signinum-tilecodec = "0.4"
signinum-j2k = "0.4"
signinum-jpeg-metal = { version = "0.4", optional = true }
signinum-j2k-metal = { version = "0.4", optional = true }
metal = { version = "0.31", optional = true }
dicom-core = "0.9"
dicom-object = "0.9"
dicom-dictionary-std = "0.9"
dicom-parser = "0.9"
dicom-transfer-syntax-registry = { version = "0.9", default-features = false }
czi-rs = "0.1.0"
cfb = "0.14.0"

[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
jpeg-decoder = "0.3.2"
jpeg-encoder = "0.6"
tempfile = "3"
toml = "0.8"
libloading = "0.8"
signinum-j2k-native = "0.4"


[build-dependencies]
pkg-config = "0.3"

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

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

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

[[bench]]
name = "openslide_parity"
harness = false
required-features = ["parity-openslide"]

[[bin]]
name = "wsi_bench"
path = "src/bin/wsi_bench.rs"
required-features = ["bench"]

[[bin]]
name = "openslide_bench"
path = "src/bin/openslide_bench.rs"
required-features = ["openslide-bench"]

[[bin]]
name = "bench_driver"
path = "src/bin/bench_driver.rs"
required-features = ["bench", "openslide-bench"]

[[bin]]
name = "jp2k_batch_bench"
path = "src/bin/jp2k_batch_bench.rs"
required-features = ["bench"]

[[bin]]
name = "release_gate"
path = "src/bin/release_gate.rs"
required-features = ["bench", "openslide-bench"]

[[bin]]
name = "svcache"
path = "src/bin/svcache.rs"

[workspace]
members = [".", "xtask", "statumen-openslide-shim"]
resolver = "2"