mirror of
https://github.com/ruvnet/RuView
synced 2026-07-21 17:13:19 +00:00
d3606d51a7
Criterion benches over the M6-audit-named heaviest hot paths: exo_time_crystal 256x128 autocorrelation, exo_ghost_hunter periodicity, sec_weapon_detect per-subcarrier Welford, med_seizure_detect clonic rhythm (medical-experimental-gated). Drives each through the public process_frame on a fixed synthetic CSI frame after warming the relevant buffers. Crate is workspace-excluded: run from the crate dir with --features std. Set lib bench=false so libtest does not intercept criterion CLI flags. HOST-MEASURED medians (Intel Core Ultra 9 285H, native --release), NOT the ESP32/WASM3 doc budget (that needs hardware): time_crystal 17.3us, ghost_hunter 1.44us, weapon 0.42us, seizure 0.10us. Closes the ADR-160 deferred 'criterion benches for process_frame budget claims' item on host. No production-code behavior change. Co-Authored-By: claude-flow <ruv@ruv.net>
75 lines
2.9 KiB
TOML
75 lines
2.9 KiB
TOML
[package]
|
|
name = "wifi-densepose-wasm-edge"
|
|
version = "0.3.0"
|
|
edition = "2021"
|
|
authors = ["rUv <ruv@ruv.net>", "WiFi-DensePose Contributors"]
|
|
license = "MIT OR Apache-2.0"
|
|
repository = "https://github.com/ruvnet/wifi-densepose"
|
|
description = "WASM-compilable sensing algorithms for ESP32 edge deployment (ADR-040)"
|
|
keywords = ["wifi", "wasm", "sensing", "esp32", "dsp"]
|
|
categories = ["embedded", "wasm", "science"]
|
|
|
|
[lib]
|
|
crate-type = ["cdylib", "rlib"]
|
|
# The lib's libtest harness does not understand criterion CLI flags
|
|
# (`--warm-up-time` etc.), so exclude it from `cargo bench` — only the criterion
|
|
# bench target below should receive bench args (ADR-163).
|
|
bench = false
|
|
|
|
# ADR-163: host-measured process_frame latency benches (closes the ADR-160
|
|
# "criterion benches for process_frame budget claims" deferred item — HOST only;
|
|
# the ESP32-S3 WASM3 budget remains unmeasured, see the bench header).
|
|
# `std` is required (criterion is a host crate); the crate is workspace-EXCLUDED
|
|
# so run from the crate dir: `cargo bench --features std`.
|
|
[[bench]]
|
|
name = "process_frame_bench"
|
|
harness = false
|
|
required-features = ["std"]
|
|
|
|
[dependencies]
|
|
# no_std math
|
|
libm = "0.2"
|
|
# SHA-256 for RVF build hash (optional, used by builder)
|
|
sha2 = { version = "0.10", optional = true, default-features = false }
|
|
|
|
[dev-dependencies]
|
|
# Host-only latency regression benches (ADR-163). Pinned to match the rest of
|
|
# the workspace's bench crates.
|
|
criterion = { version = "0.5", features = ["html_reports"] }
|
|
|
|
[features]
|
|
default = ["default-pipeline"]
|
|
# Enable std for testing on host + RVF builder
|
|
std = ["sha2/std"]
|
|
# Experimental medical skills (med_seizure_detect, med_cardiac_arrhythmia,
|
|
# med_respiratory_distress, med_sleep_apnea, med_gait_analysis).
|
|
#
|
|
# ⚠️ NON-DEFAULT BY DESIGN. These modules run real DSP but are NOT validated
|
|
# against clinical data and are NOT medical devices (ADR-160 §A1). They are
|
|
# gated behind this feature so they cannot be silently built into a shipping
|
|
# artifact. Build/test with:
|
|
# cargo test -p wifi-densepose-wasm-edge --features std,medical-experimental
|
|
medical-experimental = []
|
|
# Include the default combined pipeline (gesture+coherence+adversarial) entry points.
|
|
# Disable this when building standalone module binaries (ghost_hunter, etc.)
|
|
default-pipeline = []
|
|
# Build the standalone-bin Ghost Hunter target. Required because that binary
|
|
# defines its own on_init / on_frame / on_timer entry points which would
|
|
# collide with the lib's `default-pipeline` exports. Build with:
|
|
# cargo build -p wifi-densepose-wasm-edge --bin ghost_hunter \
|
|
# --target wasm32-unknown-unknown --release \
|
|
# --no-default-features --features standalone-bin
|
|
standalone-bin = []
|
|
|
|
[[bin]]
|
|
name = "ghost_hunter"
|
|
path = "src/bin/ghost_hunter.rs"
|
|
required-features = ["standalone-bin"]
|
|
|
|
[profile.release]
|
|
opt-level = "s" # Optimize for size
|
|
lto = true
|
|
codegen-units = 1
|
|
panic = "abort"
|
|
strip = true
|