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
65 lines
1.5 KiB
TOML
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"
|