[package]
name = "ndbioimage"
version = "2026.1.2"
edition = "2024"
rust-version = "1.85.1"
authors = ["Wim Pomp <w.pomp@nki.nl>"]
license = "MIT"
description = "Read bio image formats using the bio-formats java package."
homepage = "https://github.com/wimpomp/ndbioimage/tree/rs"
repository = "https://github.com/wimpomp/ndbioimage/tree/rs"
documentation = "https://docs.rs/ndbioimage"
readme = "README.md"
keywords = ["bioformats", "imread", "ndarray", "metadata"]
categories = ["multimedia::images", "science"]
exclude = ["/tests"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
name = "ndbioimage"
crate-type = ["cdylib", "rlib"]

[dependencies]
clap = { version = "4", features = ["derive"] }
ffmpeg-sidecar = { version = "2", optional = true }
itertools = "0.14"
indexmap = { version = "2", features = ["serde"] }
indicatif = { version = "0.18", features = ["rayon"], optional = true }
j4rs = "0.24"
ndarray = { version = "0.17", features = ["serde"] }
num = "0.4"
numpy = { version = "0.27", optional = true }
ordered-float = "5"
rayon = { version = "1", optional = true }
serde = { version = "1", features = ["rc"] }
serde_json = { version = "1", optional = true }
serde_with = "3"
tiffwrite = { version = "2025.12.0", optional = true}
thread_local = "1"
ome-metadata = "0.4"
lazy_static = "1"
thiserror = "2"

[dependencies.pyo3]
version = "0.27"
features = ["extension-module", "abi3-py310", "generate-import-lib", "anyhow"]
optional = true

[dev-dependencies]
downloader = "0.2"
rayon = "1"
regex = "1"
reqwest = { version = "0.13", features = ["blocking"] }

[build-dependencies]
j4rs = "0.24"
ffmpeg-sidecar = "2"
retry = "2"

[features]
# Enables formats for which code in bioformats with a GPL license is needed
gpl-formats = []
# Enables python ffi using pyO3
python = ["dep:pyo3", "dep:numpy", "dep:serde_json"]
# Enables writing as tiff
tiff = ["dep:tiffwrite", "dep:indicatif", "dep:rayon"]
# Enables writing as mp4 using ffmpeg
movie = ["dep:ffmpeg-sidecar"]

[package.metadata.docs.rs]
features = ["gpl-formats", "tiff", "movie"]