[package]
name = "celsius"
version = "0.3.2"
edition = "2024"
license = "MIT"
description = "Terminal weather TUI: first-person sky view of the weather at your location, rendered as a truecolor half-block scene"
repository = "https://github.com/lmarkmann/celsius"
keywords = ["weather", "tui", "terminal", "sky", "cli"]
categories = ["command-line-utilities", "visualization"]
exclude = [
  "demos/",
  "scenes/",
  "scripts/",
  ".github/",
  "benches/",
  "tests/",
]

[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-v{ version }-{ target }{ archive-suffix }"
pkg-fmt = "tgz"
bin-dir = "{ bin }{ binary-ext }"

[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"

[features]
default = []
# Compiles in the PNG sink (terminal::encode_png, celsius render subcommand,
# oracle test). Off by default so `cargo build --release` produces the slim
# TUI-only binary; the oracle path pulls it in via `--features png`.
png = ["dep:image"]

[dependencies]
anyhow = "1"
chrono = "0.4"
dirs = "6"
clap = { version = "4", features = ["derive"] }
crossterm = "0.28"
image = { version = "0.25", default-features = false, features = ["png"], optional = true }
ratatui = { version = "0.30", features = ["crossterm_0_28"] }
serde = { version = "1", features = ["derive"] }
sha2 = "0.10"
thiserror = "2"
toml = "0.5"
unicode-width = "0.2"
ureq = { version = "2", features = ["json"] }

[dev-dependencies]
assert_cmd = "2"
criterion = { version = "0.5", features = ["html_reports"] }
predicates = "3"
serde_json = "1"

[[test]]
name = "oracle"
required-features = ["png"]

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

[profile.release]
opt-level = 3
lto = "thin"
strip = "symbols"
