[package]
name = "bundle"
version = "0.8.0-dev"
edition = "2021"
authors = ["Frank Fischer <frank-fischer@shadow-soft.de>"]
build = "build.rs"

[features]
default = ["distributed", "mcf"]
blas = ["rs-blas", "openblas-src"]
crossbeam = ["rs-crossbeam"]
mcf = ["rs-graph", "replace_with"]
serialize = ["serde"]
distributed = ["mpi", "serialize", "flexbuffers"]

[dependencies]
assert_float_eq = "^1.0"
cplex-sys = "^0.9"
float-pretty-print = "^0.1"
log = "^0.4"
num-traits = "^0.2.8"
num_cpus = "^1.2"
thiserror = "^2.0.11"
threadpool = "^1.7"
flexbuffers = { version = "^2", optional = true }
mpi = { version = "^0.8", features = ["user-operations", "derive"], optional = true }
openblas-src = { version = "^0.10", optional = true, features = ["system"], default-features = false }
replace_with = { version = "^0.1.7", optional = true }
rs-blas = { version = "^0.22.0", optional = true, package = "blas" }
rs-crossbeam = { version = "^0.8", optional = true, package = "crossbeam" }
rs-graph = { version = "^0.21", optional = true, features = ["dimacs"] }
serde = { version = "^1", optional = true, features = ["derive", "rc"] }


[dev-dependencies]
better-panic = "^0.3"
env_logger = "^0.11.3"
ordered-float = "^4"
rustop = "^1.0.4"

[[example]]
name = "mmcf"
required-features = ["mcf"]
