zerodds-recorder
Layer 4 — Core Services. Pure-Rust record/replay format (
.zddsrecv1.0).
- Source: crates/recorder
- API docs: docs.rs/zerodds-recorder
zerodds-recorder delivers a deterministic wire format with a
write-once header and sequential frame records, plus a
reader, writer, and a thread-safe live-session API.
Spec anchors
docs/specs/zddsrec-1.0.md§1-§5.
Layer position
Layer 4 — no ZeroDDS crate deps. Consumed by tools/replay
(inspect/dump/replay CLI) and tools/recorder-bridge (live recording
from the DcpsRuntime).
Quickstart
use zerodds_recorder::{RecordWriter, Header, Frame, SampleKind};
let mut sink = Vec::new();
let mut writer = RecordWriter::new(&mut sink);
writer.write_header(&Header { /* ... */ }).unwrap();
writer.write_frame(&Frame { /* ... */ }).unwrap();
Stability
1.0.0-rc.3. The wire format ZDDSREC_VERSION = 1 is stable; additive
extensions (streaming reader, IndexAddFrame, compression) are designed as
major-2.0 hooks — the reader rejects unknown FrameMagic bytes
with ReadError::UnknownFrameMagic.
zerodds-recorder
Layer 4 — Core Services. Pure-Rust Record/Replay-Format (
.zddsrecv1.0).
- Quelle: crates/recorder
- API-Docs: docs.rs/zerodds-recorder
zerodds-recorder liefert ein deterministisches Wire-Format mit
einmal-geschriebenem Header und sequentiellen Frame-Records, plus
Reader, Writer und thread-safe Live-Session-API.
Spec-Anker
docs/specs/zddsrec-1.0.md§1-§5.
Schichten-Position
Layer 4 — keine ZeroDDS-Crate-Deps. Konsumiert von tools/replay
(inspect/dump/replay-CLI) und tools/recorder-bridge (Live-Recording
aus DcpsRuntime).
Quickstart
use zerodds_recorder::{RecordWriter, Header, Frame, SampleKind};
let mut sink = Vec::new();
let mut writer = RecordWriter::new(&mut sink);
writer.write_header(&Header { /* ... */ }).unwrap();
writer.write_frame(&Frame { /* ... */ }).unwrap();
Stabilitaet
1.0.0-rc.3. Wire-Format ZDDSREC_VERSION = 1 ist stabil; additive
Erweiterungen (Streaming-Reader, IndexAddFrame, Compression) sind als
Major-2.0-Hooks designt — der Reader lehnt unbekannte FrameMagic-Bytes
mit ReadError::UnknownFrameMagic ab.