henad-cli 0.3.0

Command-line benchmark and sweep runner for Henad, a parallel agent-based modelling engine.
Documentation
[package]
name = "henad-cli"
version.workspace = true
description = "Command-line benchmark and sweep runner for Henad, a parallel agent-based modelling engine."
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation = "https://docs.rs/henad-cli"
readme = "README.md"
keywords = ["agent-based-model", "simulation", "benchmark", "parameter-sweep", "cli"]
categories = ["simulation", "science", "command-line-utilities"]
# The golden tests and their 0.2.0 reference output stay in the repository.
exclude = ["/tests/"]

[lib]
path = "src/lib.rs"

# The official binary runs the example models. A host with models of its own calls `henad_cli::run`.
[[bin]]
name = "henad-cli"
path = "src/main.rs"
required-features = ["example-models"]

# All three run the official binary.
[[test]]
name = "golden"
required-features = ["example-models"]

[[test]]
name = "json_lines"
required-features = ["example-models"]

[[test]]
name = "manifest"
required-features = ["example-models"]

[features]
default = ["example-models"]
# The ten example models, for the official binary.
example-models = ["dep:henad-models"]

[dependencies]
# henad-compute gives the model set, `Simulation` for the exports, `GpuContext` and the panic hook. henad-explore
# gives the benchmark, the headless device and the sweeps.
henad-core = { workspace = true }
henad-compute = { workspace = true }
henad-models = { workspace = true, optional = true }
henad-explore = { workspace = true }
# `string` sets the command name at run time, from `CliOptions`.
clap = { workspace = true, features = ["string"] }
anyhow = { workspace = true }
numfmt = { workspace = true }
# `--json` writes the harness protocol lines, `--threads` sizes rayon's global pool.
serde_json = { workspace = true }
rayon = { workspace = true }

[dev-dependencies]
henad-models = { workspace = true }
# The headless device of the tests.
henad-explore = { workspace = true, features = ["testing"] }

[build-dependencies]
henad-build = { workspace = true }

[lints]
workspace = true

[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
rustdoc-args = ["--cfg", "docsrs"]