zerodds-replay
Inspect/replay CLI for
.zddsrecrecordings: dump frames, replay at scaled wallclock, optional live re-injection into a DCPS domain.
ZeroDDS tool for offline analysis and re-injection of recordings
captured by zerodds-recorder-bridge. Reads the .zddsrec format
defined by zerodds-recorder, exposes a
read-only inspection mode, and an optional live-injection mode that
re-publishes recorded samples into a running DDS domain through
zerodds-c-api.
Spec mapping
| Spec | Section |
|---|---|
| ZeroDDS Recorder 1.0 | .zddsrec file format |
| OMG DDSI-RTPS 2.5 | §10 sample serialisation |
Safety classification
COMFORT — operator tooling, not safety-critical runtime code.
Quickstart
# replay also reads the decoded formats written by `record --decode`
Input formats
replay detects the format from the file extension and re-publishes byte-exact
from the raw CDR bytes each format retains:
| Extension | Format |
|---|---|
.zddsrec |
native binary capture (streamed) |
.json / .ndjson / .jsonl |
decoded NDJSON (record --out-json) |
.db / .sqlite / .sqlite3 |
decoded SQLite (record --out-sqlite) |
The NDJSON line carries the DDS type name and SQLite carries _types, so the
replay writer is created with the correct type without an out-of-band IDL.
Sub-commands
| Command | Purpose |
|---|---|
inspect <file> |
Print recording header and per-topic frame count. |
dump <file> |
List every frame with timestamp, topic, length. |
replay <file> [--time-scale F] [--topic NAME]... [--inject [--inject-domain N]] |
Replay frames at wallclock speed (F=1.0) or scaled (F>1.0 faster); whitelist topics; optionally inject into a live DCPS domain. Accepts .zddsrec, NDJSON and SQLite (see Input formats). |
inspect and dump operate on .zddsrec only.
Stability
1.0.0-rc.1 — public CLI is stable. Breaking changes require a
major version bump.
Build & test
Links
crates/recorder/—.zddsrecformat.tools/recorder-bridge/— live recording counterpart.CHANGELOG.md.
Licence
Apache-2.0. See LICENSE.