[package]
name = "lgp-core"
version.workspace = true
edition.workspace = true
authors.workspace = true
description = "A library to solve problems using linear genetic programming"
license = "Apache-2.0"
repository = "https://github.com/urmzd/linear-gp"

[lib]
name = "lgp"

[dependencies]
csv = "1.1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
rand = "0.8.5"
rand_xoshiro = "0.6"
strum = { version = "0.24", features = ["derive"] }
strum_macros = "0.24"
lazy_static = "1.4"
derivative = "2.2"
derive_more = { version = "0.99" }
itertools = "0.10"
tracing = { version = "0.1", features = ["attributes"] }
tracing-appender = "0.2"
tracing-subscriber = { version = "0.3", default-features = false, features = ["env-filter", "fmt", "json", "std", "ansi"] }
gymnasia = { version = "3.0", default-features = false, optional = true }
uuid = { version = "1.2.2", features = ["v4", "serde"] }
clap = { version = "4.1.8", features = ["derive"] }
config = "0.13"
derive_builder = "0.12"
rayon = "1.7"
glob = "0.3.1"
toml = "0.8"
chrono = "0.4"

[features]
gym = ["dep:gymnasia"]

[dev-dependencies]
criterion = "0.4.0"
itertools = "0.10"

[[bench]]
name = "performance_after_training"
harness = false
required-features = ["gym"]

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

[[example]]
name = "cart_pole"
required-features = ["gym"]

[[example]]
name = "iris_classification"
