wifi-densepose-config 0.3.0

Configuration management for WiFi-DensePose
Documentation
  • Coverage
  • 100%
    1 out of 1 items documented0 out of 0 items with examples
  • Size
  • Source code size: 4.93 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 969.4 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 12s Average build duration of successful builds.
  • all releases: 14s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • ruvnet/RuView
    46538 6292 22
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • ruvnet

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

Related Crates

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