[package]
name = "wifi-densepose-cli"
version.workspace = true
edition.workspace = true
description = "CLI for WiFi-DensePose"
authors.workspace = true
license.workspace = true
repository.workspace = true
documentation = "https://docs.rs/wifi-densepose-cli"
keywords = ["wifi", "cli", "densepose", "disaster", "detection"]
categories = ["command-line-utilities", "science"]
readme = "README.md"

[[bin]]
name = "wifi-densepose"
path = "src/main.rs"

[features]
# `mat` pulls wifi-densepose-mat → -nn → ort (ONNX) → openssl-sys, which does NOT
# cross-compile to aarch64 and is irrelevant to the calibration path. Build the
# Pi/appliance calibration binary with `--no-default-features` to exclude it.
default = ["mat"]
mat = ["dep:wifi-densepose-mat"]

[dependencies]
# Internal crates
wifi-densepose-mat = { version = "0.3.0", path = "../wifi-densepose-mat", optional = true }
wifi-densepose-signal = { version = "0.3.1", path = "../wifi-densepose-signal", default-features = false }
wifi-densepose-core = { version = "0.3.0", path = "../wifi-densepose-core" }
wifi-densepose-calibration = { version = "0.3.0", path = "../wifi-densepose-calibration" }

# Linear algebra / complex numbers (used by calibrate.rs to build CsiFrame)
ndarray = { workspace = true }
num-complex = { workspace = true }

# CLI framework
clap = { version = "4.4", features = ["derive", "env", "cargo"] }

# Output formatting
colored = "2.1"
tabled = { version = "0.20", features = ["ansi"] }
indicatif = "0.17"
console = "0.16"

# Async runtime
tokio = { version = "1.35", features = ["full"] }

# HTTP API server (calibrate-serve subcommand — drives a future UI)
axum = { workspace = true }
tower-http = { version = "0.6", features = ["cors", "trace"] }

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
csv = "1.3"

# Error handling
anyhow = "1.0"
thiserror = "2.0"

# Time
chrono = { version = "0.4", features = ["serde"] }

# UUID
uuid = { version = "1.6", features = ["v4", "serde"] }

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }

[dev-dependencies]
assert_cmd = "2.0"
predicates = "3.0"
tempfile = "3.9"
tower = { workspace = true }
