[package]
edition = "2024"
rust-version = "1.89"
name = "optimizer"
version = "1.0.0"
authors = ["Manuel Raimann <raimannma@outlook.de>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Bayesian and population-based optimization library with an Optuna-like API for hyperparameter tuning and black-box optimization"
documentation = "https://docs.rs/optimizer"
readme = "README.md"
keywords = [
"optimization",
"hyperparameter",
"tpe",
"grid-search",
"bayesian",
]
categories = [
"algorithms",
"science",
"mathematics",
]
license = "MIT"
repository = "https://github.com/raimannma/rust-optimizer"
[features]
async = ["dep:tokio"]
cma-es = ["dep:nalgebra"]
default = []
derive = ["dep:optimizer-derive"]
gp = ["dep:nalgebra"]
journal = [
"dep:fs2",
"serde",
]
serde = [
"dep:serde",
"dep:serde_json",
]
sobol = ["dep:sobol_burley"]
tracing = ["dep:tracing"]
[lib]
name = "optimizer"
path = "src/lib.rs"
[[example]]
name = "ask_and_tell"
path = "examples/ask_and_tell.rs"
[[example]]
name = "async_parallel"
path = "examples/async_parallel.rs"
required-features = ["async"]
[[example]]
name = "basic_optimization"
path = "examples/basic_optimization.rs"
[[example]]
name = "early_stopping"
path = "examples/early_stopping.rs"
[[example]]
name = "journal_storage"
path = "examples/journal_storage.rs"
required-features = ["journal"]
[[example]]
name = "multi_objective"
path = "examples/multi_objective.rs"
[[example]]
name = "parameter_types"
path = "examples/parameter_types.rs"
required-features = ["derive"]
[[example]]
name = "pruning"
path = "examples/pruning.rs"
[[example]]
name = "sampler_comparison"
path = "examples/sampler_comparison.rs"
[[test]]
name = "async_tests"
path = "tests/async_tests.rs"
[[test]]
name = "derive_tests"
path = "tests/derive_tests.rs"
[[test]]
name = "export_tests"
path = "tests/export_tests.rs"
[[test]]
name = "fanova_tests"
path = "tests/fanova_tests.rs"
[[test]]
name = "importance_tests"
path = "tests/importance_tests.rs"
[[test]]
name = "journal_tests"
path = "tests/journal_tests.rs"
required-features = ["journal"]
[[test]]
name = "multi_objective_tests"
path = "tests/multi_objective_tests.rs"
[[test]]
name = "parameter_tests"
path = "tests/parameter_tests.rs"
[[test]]
name = "pruner"
path = "tests/pruner/main.rs"
[[test]]
name = "sampler"
path = "tests/sampler/main.rs"
[[test]]
name = "serde_tests"
path = "tests/serde_tests.rs"
[[test]]
name = "stress_tests"
path = "tests/stress_tests.rs"
[[test]]
name = "study"
path = "tests/study/main.rs"
[[test]]
name = "test_functions"
path = "tests/test_functions.rs"
[[test]]
name = "user_attr_tests"
path = "tests/user_attr_tests.rs"
[[test]]
name = "visualization_tests"
path = "tests/visualization_tests.rs"
[[bench]]
name = "optimization"
path = "benches/optimization.rs"
harness = false
[[bench]]
name = "samplers"
path = "benches/samplers.rs"
harness = false
[[bench]]
name = "test_functions"
path = "benches/test_functions.rs"
[dependencies.fastrand]
version = "2.3"
[dependencies.fs2]
version = "0.4"
optional = true
[dependencies.nalgebra]
version = "0.34"
optional = true
[dependencies.optimizer-derive]
version = "0.1.0"
optional = true
[dependencies.parking_lot]
version = "0.12"
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.sobol_burley]
version = "0.5"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1.30"
features = [
"sync",
"rt-multi-thread",
]
optional = true
[dependencies.tracing]
version = "0.1.29"
optional = true
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.optimizer-derive]
version = "0.1.0"
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tokio]
version = "1.30"
features = [
"rt-multi-thread",
"macros",
"time",
]