chore: add workspace metadata and crate READMEs for publishing
Add license, authors, repository, documentation, keywords, categories, and readme fields to all crate Cargo.toml files. Add crate-level README files for documentation. Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
@@ -3,5 +3,12 @@ name = "wifi-densepose-config"
|
||||
version.workspace = true
|
||||
edition.workspace = true
|
||||
description = "Configuration management for WiFi-DensePose"
|
||||
license.workspace = true
|
||||
authors = ["rUv <ruv@ruv.net>", "WiFi-DensePose Contributors"]
|
||||
repository.workspace = true
|
||||
documentation.workspace = true
|
||||
keywords = ["wifi", "configuration", "densepose", "settings", "toml"]
|
||||
categories = ["config", "science"]
|
||||
readme = "README.md"
|
||||
|
||||
[dependencies]
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
# wifi-densepose-config
|
||||
|
||||
[](https://crates.io/crates/wifi-densepose-config)
|
||||
[](https://docs.rs/wifi-densepose-config)
|
||||
[](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](https://docs.rs/config), [dotenvy](https://docs.rs/dotenvy), and
|
||||
[envy](https://docs.rs/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
|
||||
|
||||
```rust
|
||||
// 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
|
||||
|
||||
```toml
|
||||
# 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`](../wifi-densepose-core) | Shared types and traits |
|
||||
| [`wifi-densepose-api`](../wifi-densepose-api) | REST API (consumer) |
|
||||
| [`wifi-densepose-db`](../wifi-densepose-db) | Database layer (consumer) |
|
||||
| [`wifi-densepose-cli`](../wifi-densepose-cli) | CLI (consumer) |
|
||||
| [`wifi-densepose-sensing-server`](../wifi-densepose-sensing-server) | Sensing server (consumer) |
|
||||
|
||||
## License
|
||||
|
||||
MIT OR Apache-2.0
|
||||
Reference in New Issue
Block a user