mirror of
https://github.com/ruvnet/RuView.git
synced 2026-08-29 11:35:47 +00:00
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
23 lines
691 B
Rust
23 lines
691 B
Rust
//! # rvCSI Node.js bindings — napi-rs (skeleton; completed during integration)
|
|
//!
|
|
//! The safe TypeScript-facing surface over the rvCSI Rust runtime
|
|
//! (ADR-095 D3/D4, ADR-096). Nothing here exposes raw pointers; every value
|
|
//! that crosses the boundary is a validated/normalized struct or a JSON string.
|
|
|
|
#![deny(clippy::all)]
|
|
|
|
#[macro_use]
|
|
extern crate napi_derive;
|
|
|
|
/// rvCSI runtime version (the workspace crate version).
|
|
#[napi]
|
|
pub fn rvcsi_version() -> String {
|
|
env!("CARGO_PKG_VERSION").to_string()
|
|
}
|
|
|
|
/// ABI version of the linked napi-c Nexmon shim (`major << 16 | minor`).
|
|
#[napi]
|
|
pub fn nexmon_shim_abi_version() -> u32 {
|
|
rvcsi_adapter_nexmon::shim_abi_version()
|
|
}
|