[package]
name = "taco_format"
version = "0.1.2"
edition = "2024"
authors = ["TACO Format Developers"]
description = "TACO (Trajectory and Compressed Observables) Format for molecular dynamics data"
license = "MIT"
repository = "https://github.com/username/taco_format"
keywords = ["molecular-dynamics", "compression", "trajectory", "simulation"]
categories = ["science", "compression"]
exclude = [".*", "*.npy", "*.traj", "*.npz", ".taco"]

[dependencies]
byteorder = "1.4"
serde = { version = "1.0", features = ["derive"] }
serde_yaml = "0.9"
serde_json = "1.0"
zstd = "0.13"
anyhow = "1.0"
thiserror = "2.0"
ndarray = "0.16"
memmap2 = "0.9"
half = "2.6"
pyo3 = { version = "0.27", features = [
    "extension-module",
    "auto-initialize",
], optional = true }
pyo3-ffi = { version = "0.27", optional = true }
numpy = { version = "0.27", optional = true }
rayon = { version = "1.10.0", optional = true }
clap = { version = "4.4", features = ["derive"] }
tokio = { version = "1.0", features = ["fs", "io-util", "rt"], optional = true }
colored = "3.0.0"

[build-dependencies]
pyo3-build-config = "0.27"

[dev-dependencies]
tempfile = "3.5"
criterion = { version = "0.5", features = ["html_reports"] }
approx = "0.5"
pprof = { version = "0.15", features = ["flamegraph", "criterion"] }
tokio = { version = "1.0", features = ["rt", "macros"] }

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

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

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

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

[profile.bench]
debug = true

[profile.release]
lto = true

[package.metadata.maturin]
name = "taco_format"

[lib]
name = "taco_format"
crate-type = ["cdylib", "rlib"]

[features]
default = ["python", "rayon", "async"]
python = ["pyo3/extension-module", "dep:pyo3", "dep:numpy", "dep:pyo3-ffi"]
rayon = ["dep:rayon"]
async = ["dep:tokio"]

[package.metadata.docs.rs]
features = ["python"]
