rvcsi-core 0.3.1

rvCSI core — normalized CsiFrame/CsiWindow/CsiEvent schema, AdapterProfile, CsiSource trait, validation pipeline (ADR-095, ADR-096)
Documentation

rvcsi-core

crates.io docs.rs

The shared kernel of rvCSI — the edge RF sensing runtime.

Owns the normalized schema every CSI source is mapped onto:

  • CsiFrame — one CSI observation at a timestamp (I/Q + derived amplitude/phase per subcarrier, channel/bandwidth, RSSI/noise/antenna/chains, ValidationStatus, quality_score, quality_reasons, calibration_version).
  • CsiWindow — a bounded run of frames from one source, summarized into per-subcarrier mean amplitude / phase variance plus scalar motion / presence / quality scores.
  • CsiEvent — a semantic interpretation with CsiEventKind, confidence, evidence window ids, and free-form metadata JSON.

Plus: AdapterProfile (a source's capability descriptor — gates validation), the CsiSource plugin trait (every hardware/file/replay adapter implements it), id newtypes (FrameId/WindowId/EventId/SessionId/SourceId) + a Send+Sync IdGenerator, the structured RvcsiError, and validate_frame — the only door between raw adapter output and anything downstream. Validation mutates a frame in place: on success it sets Accepted / Degraded / Recovered and fills quality_score; on a hard failure it sets Rejected and returns a ValidationError. A Pending or Rejected frame must never cross a language boundary.

#![forbid(unsafe_code)]. Dependency-light (serde + thiserror) and no_std-clean in spirit.

[dependencies]
rvcsi-core = "0.3"

See ADR-095 (the 15 platform decisions) and ADR-096 (crate topology / FFI seams). Licensed under MIT OR Apache-2.0.