[workspace] members = [".", "heuropt-plot"] [package] name = "heuropt" version = "0.8.0" edition = "2024" rust-version = "1.85" authors = ["Stephen Waits "] description = "A practical Rust toolkit for heuristic single-, multi-, and many-objective optimization." license = "MIT" readme = "README.md" repository = "https://github.com/swaits/heuropt" homepage = "https://github.com/swaits/heuropt" documentation = "https://docs.rs/heuropt" keywords = ["optimization", "evolutionary", "nsga", "pareto", "moead"] categories = ["algorithms", "science", "mathematics", "simulation"] [features] default = [] serde = ["dep:serde"] parallel = ["dep:rayon"] async = ["dep:futures"] [dependencies] futures = { version = "0.3", optional = true, default-features = false, features = ["std", "async-await"] } rand = "0.9" rand_distr = "0.5" rayon = { version = "1", optional = true } serde = { version = "1", features = ["derive"], optional = true } [dev-dependencies] gungraun = "0.18" heuropt-plot = { path = "heuropt-plot" } proptest = "1" tokio = { version = "1", features = ["rt-multi-thread", "macros", "time"] } [[bench]] name = "hot_paths" harness = false [[example]] name = "async_eval" required-features = ["async"] # Tighten release codegen for the compare harness and downstream binaries # that build heuropt directly (i.e. when this crate is the workspace root). # When heuropt is used as a dependency the consumer's profile wins. [profile.release] lto = "thin" codegen-units = 1