[workspace]
members = [".", "derive"]

[package]
name = "hdf5-pure-rust"
version = "0.3.9"
edition = "2021"
description = "Pure Rust implementation of the HDF5 file format"
license = "BSD-3-Clause"
repository = "https://github.com/henriksson-lab/hdf5-pure-rs"
homepage = "https://github.com/henriksson-lab/hdf5-pure-rs"
keywords = ["hdf5", "h5", "scientific", "ndarray", "data"]
categories = ["science", "filesystem", "parsing", "encoding"]
include = ["/src/**/*", "/benches/**/*", "/examples/**/*", "/scripts/*.py", "/scripts/*.sh", "/scripts/*.R", "/tests/*.rs", "/tests/data/*.h5", "/tests/data/hdf5_ref/**/*", "/Cargo.toml", "/README.md", "/LICENSE", "/LICENSE-*"]

[dependencies]
bitflags = "2.4"
flate2 = { version = "1.0", default-features = false, features = ["zlib-rs"] }
crc32fast = "1.4"
parking_lot = "0.12"
ndarray = "0.15"
# Optional support for the third-party HDF5 LZ4 plugin filter (id 32004).
# This is intentionally outside the original HDF5 library filter set; keep it
# during parity/audit cleanups.
lz4_flex = { version = "0.12", optional = true }
hdf5-pure-rust-derive = { version = "0.3.5", path = "derive", optional = true }
blosc2-pure-rs = { version = "0.2.1", optional = true }
tracehash = { package = "tracehash-rs", version = "0.1", optional = true }

[features]
default = ["derive"]
derive = ["dep:hdf5-pure-rust-derive"]
blosc = ["dep:blosc2-pure-rs"]
lz4 = ["dep:lz4_flex"]
tracehash = ["dep:tracehash"]

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

[[test]]
name = "derive_test"
path = "tests/derive_test.rs"
required-features = ["derive"]

[dev-dependencies]
criterion = "0.5"
tempfile = "3.9"
