mirror of
https://github.com/ruvnet/RuView
synced 2026-08-11 20:41:44 +00:00
1e684cb208
First implementation milestone for the rvCSI edge RF sensing runtime:
- rvcsi-core — the foundation: CsiFrame/CsiWindow/CsiEvent normalized schema,
ValidationStatus, AdapterProfile, CsiSource plugin trait, id newtypes +
IdGenerator, RvcsiError, and the validate_frame pipeline (length/finiteness/
subcarrier/RSSI/monotonicity hard checks + multiplicative quality scoring →
Accepted/Degraded/Recovered/Rejected). 29 unit tests, forbid(unsafe_code).
- rvcsi-adapter-nexmon — the napi-c boundary: native/rvcsi_nexmon_shim.{c,h}
(the only C in the runtime, allocation-free, bounds-checked, parses/writes a
byte-defined "rvCSI Nexmon record" — a normalized superset of the nexmon_csi
UDP payload), compiled via build.rs + cc, wrapped by a documented ffi module
and a NexmonAdapter implementing CsiSource. 9 tests round-tripping through C.
- Workspace registration in v2/Cargo.toml (8 new members + napi/cc workspace
deps) and compiling skeletons for rvcsi-dsp, rvcsi-events, rvcsi-adapter-file,
rvcsi-ruvector, rvcsi-node (napi-rs cdylib + build.rs napi_build::setup) and
rvcsi-cli (`rvcsi` binary) — to be filled in by the implementation swarm.
cargo build -p rvcsi-core -p rvcsi-adapter-nexmon -p rvcsi-node -p rvcsi-cli: OK
cargo test -p rvcsi-core -p rvcsi-adapter-nexmon: 38 passed, 0 failed
https://claude.ai/code/session_01CdYAPvRTjcch6YrYf42n1z
19 lines
721 B
Rust
19 lines
721 B
Rust
//! Compiles the isolated napi-c shim (`native/rvcsi_nexmon_shim.c`) into a
|
|
//! static library linked into `rvcsi-adapter-nexmon`. This is the only place
|
|
//! the rvCSI runtime invokes a C compiler (ADR-095 D2, ADR-096).
|
|
|
|
fn main() {
|
|
println!("cargo:rerun-if-changed=native/rvcsi_nexmon_shim.c");
|
|
println!("cargo:rerun-if-changed=native/rvcsi_nexmon_shim.h");
|
|
|
|
cc::Build::new()
|
|
.file("native/rvcsi_nexmon_shim.c")
|
|
.include("native")
|
|
.warnings(true)
|
|
.extra_warnings(true)
|
|
// The shim is allocation-free and freestanding-ish; keep it tight.
|
|
.flag_if_supported("-std=c11")
|
|
.flag_if_supported("-fno-strict-aliasing")
|
|
.compile("rvcsi_nexmon_shim");
|
|
}
|