feat(cli): add dora record and dora play commands#1494
feat(cli): add dora record and dora play commands#1494adityabelgaonkar05 wants to merge 2 commits into
dora record and dora play commands#1494Conversation
Adds native recording and playback of dataflow messages using Arrow IPC format. subscribes to Zenoh-published outputs and writes them to .arrows files with batched writing and atomic file operations. reads recordings and republishes messages with configurable rate scaling and loop support. Requires in the dataflow descriptor.
a82ebad to
89f7030
Compare
…play and record commands
89f7030 to
f0948d7
Compare
|
Hi @adityabelgaonkar05 — first, thanks for the substantive work here. 687 lines of careful Zenoh-sniffing + Arrow IPC plumbing is real effort, and I'm sorry the PR sat without feedback for 2 months. That's not on you. Closing this PR rather than asking for a rebase, because the ground moved under it in a way that's not a rescue-friendly situation. Walking through why so the call doesn't feel arbitrary. What happened on mainFour weeks after you opened this PR, the 1.0 consolidation commit The two approaches differ at the foundational level:
Both are legitimate. The Zenoh-sniffing pattern is closer to what #1488's wording requested ("first-class equivalent to rosbag"). The dataflow-modification pattern is more idiomatic to dora's zero-copy / Arrow-native architecture and works without Zenoh being on. Why this isn't a rebase-and-merge rescue
Where the Zenoh-sniffing idea could still goIf you (or anyone reading this) still want the Zenoh-sniffing pattern alongside the existing
The original code in this branch isn't going anywhere — it stays on the PR branch and in fork history. If the design discussion lands favorably you have a head start. One concrete note on the implementationI read through Thanks again — the substance was there, the timing wasn't. |
Closes #1488
Summary
dora recordto capture dataflow messages from Zenoh into Arrow IPC (.arrows) files--allor specific topics, configurable duration (-t), Ctrl+C to stopdora playto replay recorded messages back into a running dataflow--rate 2.0for 2x speed), loop support (--loop)TopicSelector/DataflowSelectorfromdora topiccommandsTest plan
dora record --help/dora play --helpshow correct usagedora record --all -t 5captures messages from a dataflow withpublish_all_messages_to_zenoh: truedora play recording.arrowsreplays messages with correct timingdora play recording.arrows --rate 2.0plays at double speeddora play recording.arrows --looploops continuously