[workspace] members = ["optimizer-derive"] [package] name = "optimizer" version = "1.0.1" edition = "2024" rust-version = "1.89" license = "MIT" authors = ["Manuel Raimann "] description = "Bayesian and population-based optimization library with an Optuna-like API for hyperparameter tuning and black-box optimization" repository = "https://github.com/raimannma/rust-optimizer" documentation = "https://docs.rs/optimizer" keywords = ["optimization", "hyperparameter", "tpe", "grid-search", "bayesian"] categories = ["algorithms", "science", "mathematics"] readme = "README.md" [dependencies] fastrand = "2" thiserror = "2" parking_lot = "0.12" tokio = { version = "1", features = ["sync", "rt-multi-thread"], optional = true } optimizer-derive = { version = "0.1", path = "optimizer-derive", optional = true } serde = { version = "1", features = ["derive"], optional = true } serde_json = { version = "1", optional = true } tracing = { version = "0.1.26", optional = true } sobol_burley = { version = "0.5", optional = true } nalgebra = { version = "0.34", optional = true } fs2 = { version = "0.4", optional = true } [features] default = [] async = ["dep:tokio"] derive = ["dep:optimizer-derive"] serde = ["dep:serde", "dep:serde_json"] journal = ["dep:fs2", "serde"] tracing = ["dep:tracing"] sobol = ["dep:sobol_burley"] cma-es = ["dep:nalgebra"] gp = ["dep:nalgebra"] [dev-dependencies] tokio = { version = "1.50", features = ["rt-multi-thread", "macros", "time"] } optimizer-derive = { version = "0.1.0", path = "optimizer-derive" } serde_json = "1" criterion = { version = "0.8", features = ["html_reports"] } [[bench]] name = "samplers" harness = false [[bench]] name = "optimization" harness = false [[example]] name = "basic_optimization" path = "examples/basic_optimization.rs" [[example]] name = "parameter_types" path = "examples/parameter_types.rs" required-features = ["derive"] [[example]] name = "sampler_comparison" path = "examples/sampler_comparison.rs" [[example]] name = "pruning" path = "examples/pruning.rs" [[example]] name = "early_stopping" path = "examples/early_stopping.rs" [[example]] name = "async_parallel" path = "examples/async_parallel.rs" required-features = ["async"] [[example]] name = "journal_storage" path = "examples/journal_storage.rs" required-features = ["journal"] [[example]] name = "ask_and_tell" path = "examples/ask_and_tell.rs" [[example]] name = "multi_objective" path = "examples/multi_objective.rs" [[test]] name = "journal_tests" required-features = ["journal"]