[package]
name = "wifi-densepose-hardware"
version.workspace = true
edition.workspace = true
description = "Hardware interface abstractions for WiFi CSI sensors (ESP32, Intel 5300, Atheros)"
license = "MIT OR Apache-2.0"
authors = ["rUv <ruv@ruv.net>", "WiFi-DensePose Contributors"]
repository = "https://github.com/ruvnet/wifi-densepose"
documentation = "https://docs.rs/wifi-densepose-hardware"
keywords = ["wifi", "esp32", "csi", "hardware", "sensor"]
categories = ["hardware-support", "science"]
readme = "README.md"

[features]
default = ["std"]
std = []
# Enable ESP32 serial parsing (no actual ESP-IDF dependency; parses streamed bytes)
esp32 = []
# Enable Intel 5300 CSI Tool log parsing
intel5300 = []
# Enable Linux WiFi interface for commodity sensing (ADR-013)
linux-wifi = []

[dependencies]
# CLI argument parsing (for bin/aggregator)
clap = { version = "4.4", features = ["derive"] }
# Cryptographic HMAC (ADR-050: replace fake XOR-fold HMAC)
hmac = "0.12"
sha2 = "0.10"
# Byte parsing
byteorder = "1.5"
# Time
chrono = { version = "0.4", features = ["serde"] }
# Error handling
thiserror = "2.0"
# Logging
tracing = "0.1"
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# QUIC transport (ADR-032a)
midstreamer-quic = { workspace = true }
# Real-time TDM scheduling (ADR-032a)
midstreamer-scheduler = { workspace = true }
# Async runtime
tokio = { workspace = true }

[dev-dependencies]
approx = "0.5"
criterion = { version = "0.5", features = ["html_reports"] }
tokio = { workspace = true }

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