zerodds-recorder
Deterministic Record/Replay-Format fuer den
ZeroDDS-Stack: pure-Rust .zddsrec-Wire-Format
mit Reader, Writer und thread-safer Live-Session-API. Safety
classification: STANDARD.
Spec-Mapping
| Spec | Abschnitt |
|---|---|
| ZDDSREC 1.0 | §1-§5 (Magic + Version + Header-Layout + Frame-Layout + Sample-Kind + Index-Disziplin) |
Spec-Doc: docs/specs/zddsrec-1.0.md.
Was ist drin
- Format-Wire-Strukturen:
Header,Frame,FrameView,SampleKind,ParticipantEntry,TopicEntry,ZDDSREC_MAGIC,ZDDSREC_VERSION. RecordWriter— schreibt einen.zddsrec-Stream inkrementell in einenstd::io::Write-Sink.WriteErrordeckt IO + Format-Verstoesse ab.RecordReader— parsed einen&[u8]-Buffer inHeader+ Frame-Sequenz.ReadErrormit konkreten Truncation-Pfaden.RecordingSession— high-level Live-API mitrecord_sample(topic, type, payload), atomare Counter, lazy-Header und Topic-Indexing.
Schichten-Position
Layer 4 — Core Services. Pure-Rust + alloc, keine ZeroDDS-Crate-Deps. Wird von tools/replay (Inspect/Dump/Replay-CLI) und tools/recorder-bridge (Live-Recording aus DcpsRuntime) konsumiert.
Quickstart
Schreiben:
use ;
let mut sink = Vecnew;
let mut writer = new;
writer.write_header.unwrap;
writer.write_frame.unwrap;
Lesen:
use RecordReader;
let bytes: & = b""; // .zddsrec stream
let reader = new.unwrap;
for frame in reader.frames
Feature-Flags
| Feature | Default | Zweck |
|---|---|---|
std |
✅ | Standard-Library + std::io::Write. |
alloc |
✅ via std | Vec/String. |
safety |
❌ | Reserve-Hook fuer extra Defensive-Checks. |
Stabilitaet
1.0.0-rc.1. Wire-Format ZDDSREC_VERSION = 1 ist RC1-stabil; eine
inkompatible Aenderung wuerde die Version-Konstante heben (Reader
lehnt unbekannte Versionen ab). Additive Erweiterungen (Streaming-
Reader, IndexAddFrame, optionale Compression) sind als Major-2.0-Hooks
designt — siehe Spec §"Stabilitaet und Roadmap".
Tests
17 Unit-Tests: Format-Roundtrips, Reader-Truncation-Pfade, Writer- Header-Once-Disziplin, Session-Thread-Safety.
Lizenz
Apache-2.0. Siehe LICENSE.
Siehe auch
docs/specs/zddsrec-1.0.md— Wire-Format-Spec.tools/replay—zerodds-replay inspect|dump|replayCLI.tools/recorder-bridge— Live-Recording aus DcpsRuntime.