[package]
name = "laddu-core"
version = "0.19.3"
authors.workspace = true
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
description = "Core of the laddu library"
readme = "README.md"

[dependencies]
accurate = { workspace = true }
approx = { workspace = true }
arrow = { workspace = true }
auto_ops = { workspace = true }
bitcode = { workspace = true }
dyn-clone = { workspace = true }
factorial = { workspace = true }
fastrand = { workspace = true }
indexmap = { workspace = true }
lazy_static = { workspace = true }
mpi = { workspace = true, optional = true }
nalgebra = { workspace = true }
num = { workspace = true }
numpy = { workspace = true, optional = true }
oxyroot = { workspace = true }
parquet = { workspace = true }
parking_lot = { workspace = true }
pyo3 = { workspace = true, features = [
  "num-complex",
  "abi3-py37",
], optional = true }
rayon = { workspace = true, optional = true }
serde = { workspace = true }
serde-pickle = { workspace = true }
serde_with = { workspace = true }
shellexpand = { workspace = true }
thiserror = { workspace = true }
typetag = { workspace = true }

[dev-dependencies]
criterion = { workspace = true }
mpi_test = { workspace = true }
sysinfo = { workspace = true }

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

[[bench]]
name = "execution_context_benchmark"
harness = false
required-features = ["execution-context-prototype"]

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

[[bin]]
name = "expression_ir_compile_probe"
path = "bin/expression_ir_compile_probe.rs"

[features]
default = ["rayon"]
rayon = ["dep:rayon"]
execution-context-prototype = []
python = ["pyo3", "numpy"]
pyo3 = ["dep:pyo3"]
numpy = ["dep:numpy"]
mpi = ["dep:mpi"]

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = [
  'cfg(coverage,coverage_nightly)',
] }


[package.metadata.docs.rs]
rustdoc-args = ["--html-in-header", "./docs-header.html"]
