wifi-densepose/v2/crates/wifi-densepose-config
rUv f49c722764
chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427)
The Rust port lived two directories deep (rust-port/wifi-densepose-rs/)
without any sibling under rust-port/ that warranted the extra level.
Move the whole workspace up to v2/ to match v1/ (Python) at the same
depth and shorten every cd / build command across the repo.

git mv preserves history for all tracked files. 60 files updated for
path references (CI workflows, ADRs, docs, scripts, READMEs, internal
.claude-flow state). Two manual fixes for relative-cd paths in
CLAUDE.md and ADR-043 that became wrong after the depth change
(cd ../.. → cd ..).

Validated:
- cargo check --workspace --no-default-features → clean (after target/
  nuke; the gitignored target/ was carried by the OS rename and had
  hard-coded old paths in build scripts)
- cargo test --workspace --no-default-features → 1,539 passed, 0 failed,
  8 ignored (same totals as pre-rename)
- ESP32-S3 on COM7 → still streaming live CSI (cb #40300, RSSI -64 dBm)

After-merge follow-up: contributors should `rm -rf v2/target` once and
let cargo regenerate from the new path.
2026-04-25 21:28:13 -04:00
..
src chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
Cargo.toml chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
README.md chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00

README.md

wifi-densepose-config

Crates.io Documentation License

Configuration management for the WiFi-DensePose pose estimation system.

Overview

wifi-densepose-config provides a unified configuration layer that merges values from environment variables, TOML/YAML files, and CLI overrides into strongly-typed Rust structs. Built on the config, dotenvy, and envy ecosystem from the workspace.

Status: This crate is currently a stub. The intended API surface is documented below.

Planned Features

  • Multi-source loading -- Merge configuration from .env, TOML files, YAML files, and environment variables with well-defined precedence.
  • Typed configuration -- Strongly-typed structs for server, signal processing, neural network, hardware, and database settings.
  • Validation -- Schema validation with human-readable error messages on startup.
  • Hot reload -- Watch configuration files for changes and notify dependent services.
  • Profile support -- Named profiles (development, production, testing) with per-profile overrides.
  • Secret filtering -- Redact sensitive values (API keys, database passwords) in logs and debug output.

Quick Start

// Intended usage (not yet implemented)
use wifi_densepose_config::AppConfig;

fn main() -> anyhow::Result<()> {
    // Loads from env, config.toml, and CLI overrides
    let config = AppConfig::load()?;

    println!("Server bind: {}", config.server.bind_address);
    println!("CSI sample rate: {} Hz", config.signal.sample_rate);
    println!("Model path: {}", config.nn.model_path.display());

    Ok(())
}

Planned Configuration Structure

# config.toml

[server]
bind_address = "0.0.0.0:3000"
websocket_path = "/ws/poses"

[signal]
sample_rate = 100
subcarrier_count = 56
hampel_window = 5

[nn]
model_path = "./models/densepose.rvf"
backend = "ort"        # ort | candle | tch
batch_size = 8

[hardware]
esp32_udp_port = 5005
serial_baud = 921600

[database]
url = "sqlite://data/wifi-densepose.db"
max_connections = 5
Crate Role
wifi-densepose-core Shared types and traits
wifi-densepose-api REST API (consumer)
wifi-densepose-db Database layer (consumer)
wifi-densepose-cli CLI (consumer)
wifi-densepose-sensing-server Sensing server (consumer)

License

MIT OR Apache-2.0