tslime 0.1.2

A lightweight terminal screensaver simulating slime mold growth patterns
Documentation
[package]
name = "tslime"
version = "0.1.2"
edition = "2021"
authors = ["tslime contributors"]
description = "A lightweight terminal screensaver simulating slime mold growth patterns"
documentation = "https://docs.rs/tslime"
readme = "README.md"
homepage = "https://github.com/tamirelazar/tslime"
repository = "https://github.com/tamirelazar/tslime"
license = "MIT"
keywords = ["terminal", "screensaver", "slime-mold", "generative-art", "physarum"]
categories = ["command-line-utilities", "visualization", "simulation"]
rust-version = "1.70"
# Only the explicitly declared [[example]] targets are built; this stops cargo
# from auto-discovering stray local files under examples/ (e.g. dev prototypes).
autoexamples = false
exclude = [
    ".github/",
    "assets/demos/*.gif",
    "tests/golden/",
]

[features]
default = ["terminal"]
# gui is opt-in: cargo build --features gui
gui = ["dep:iced", "dep:iced_term"]
terminal = ["dep:crossterm", "dep:signal-hook", "dep:memory-stats", "dep:thiserror", "dep:tui-input"]
# audio (choir mode) opt-in: cargo build --features audio
audio = ["dep:cpal"]
# multi-species is experimental: cargo build --features multi-species
multi-species = []

[dependencies]
crossterm = { version = "0.27", optional = true }
# tui-input as a pure state machine (InputRequest API), default-features=false to
# drop its event backend → no crossterm coupling. Drives the config-save text field.
tui-input = { version = "0.15", optional = true, default-features = false }
clap = { version = "4.4", features = ["derive"] }
clap_complete = "4.4"
rand = "0.8"
rand_xoshiro = "0.6"
signal-hook = { version = "0.3", optional = true }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "0.8"
gif = "0.13"
image = "0.24"
noise = "0.9"
memory-stats = { version = "1.0", optional = true }
thiserror = { version = "2.0", optional = true }
iced = { version = "0.14", optional = true, features = ["canvas", "advanced"] }
iced_term = { version = "0.7", optional = true }
cpal = { version = "0.15", optional = true }

[dev-dependencies]
criterion = "0.5"
proptest = "1.4"

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

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

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

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

[[example]]
name = "memory_benchmark"

[[example]]
name = "memory_verification"

[target.'cfg(windows)'.dependencies]
enable-ansi-support = "0.2.1"

[profile.release]
lto = true
codegen-units = 1
strip = true
panic = "abort"
opt-level = "z"