Files
wifi-densepose/rust-port/wifi-densepose-rs/crates/wifi-densepose-core/Cargo.toml
Claude 6ed69a3d48 feat: Complete Rust port of WiFi-DensePose with modular crates
Major changes:
- Organized Python v1 implementation into v1/ subdirectory
- Created Rust workspace with 9 modular crates:
  - wifi-densepose-core: Core types, traits, errors
  - wifi-densepose-signal: CSI processing, phase sanitization, FFT
  - wifi-densepose-nn: Neural network inference (ONNX/Candle/tch)
  - wifi-densepose-api: Axum-based REST/WebSocket API
  - wifi-densepose-db: SQLx database layer
  - wifi-densepose-config: Configuration management
  - wifi-densepose-hardware: Hardware abstraction
  - wifi-densepose-wasm: WebAssembly bindings
  - wifi-densepose-cli: Command-line interface

Documentation:
- ADR-001: Workspace structure
- ADR-002: Signal processing library selection
- ADR-003: Neural network inference strategy
- DDD domain model with bounded contexts

Testing:
- 69 tests passing across all crates
- Signal processing: 45 tests
- Neural networks: 21 tests
- Core: 3 doc tests

Performance targets:
- 10x faster CSI processing (~0.5ms vs ~5ms)
- 5x lower memory usage (~100MB vs ~500MB)
- WASM support for browser deployment
2026-01-13 03:11:16 +00:00

65 lines
1.5 KiB
TOML

[package]
name = "wifi-densepose-core"
description = "Core types, traits, and utilities for WiFi-DensePose pose estimation system"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
documentation.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "README.md"
[features]
default = ["std"]
std = []
serde = ["dep:serde", "ndarray/serde"]
async = ["dep:async-trait"]
[dependencies]
# Error handling
thiserror.workspace = true
# Serialization (optional)
serde = { workspace = true, optional = true }
# Numeric types
ndarray.workspace = true
num-complex.workspace = true
num-traits.workspace = true
# Async traits (optional)
async-trait = { version = "0.1", optional = true }
# Time handling
chrono = { version = "0.4", features = ["serde"] }
# UUID for unique identifiers
uuid = { version = "1.6", features = ["v4", "serde"] }
[dev-dependencies]
serde_json.workspace = true
proptest.workspace = true
[lints.rust]
unsafe_code = "forbid"
missing_docs = "warn"
[lints.clippy]
all = "warn"
pedantic = "warn"
nursery = "warn"
# Allow specific lints that are too strict for this crate
missing_const_for_fn = "allow"
doc_markdown = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
cast_precision_loss = "allow"
redundant_closure_for_method_calls = "allow"
suboptimal_flops = "allow"
imprecise_flops = "allow"
manual_midpoint = "allow"
unnecessary_map_or = "allow"
missing_panics_doc = "allow"