This document tracks ROC feature status at a high level.
Source of truth for command-by-command compatibility:
COMPAT.md
- β
Native: implemented in Rust (no
ros2 ...subprocess) - π Wrapper: delegates to
ros2 ...for execution - π§± Stub/WIP: placeholder behavior
| Command | Status | Notes |
|---|---|---|
roc topic |
β | Native graph + dynamic message tooling |
roc service |
β /π | Native discovery; call currently delegates to ros2 |
roc param |
β | Native parameter service client |
roc node |
β | Native graph introspection |
roc action |
β /π | Native discovery; goal currently delegates to ros2 |
roc interface |
β | Native interface scanning + parsing |
roc frame |
β | Native TF graph + query + static publish |
roc bag |
β | Native MCAP record/play + rosbag2 metadata parsing |
roc run |
β | Native executable discovery + execution |
roc launch |
π | Launch file discovery + ros2 launch execution |
roc work |
β | Native workspace management + build system |
roc idl |
β | Native IDL/protobuf tooling |
roc completion |
β | Native completion generation |
roc daemon |
π§± | Placeholder |
roc middleware |
π§± | Placeholder |
- Dynamic topic tools:
echo,pub,hz,bw,delayare implemented natively usingrclrsdynamic subscriptions/publishers. - TF tooling: subscribes to
/tfand/tf_static, builds a TF graph, resolves multi-hop transforms. - Bag tooling: records serialized CDR bytes into MCAP; plays MCAP back to ROS topics.
- Workspace tooling: package discovery, dependency resolution, and a native colcon-like builder. Minimal
ament_cmakevalidation is in place;ament_pythonstill has known compatibility gaps.
- Replace remaining
ros2wrappers (roc service call,roc action goal, and potentiallyroc launch). - Improve lifecycle control for long-running commands (graceful ctrl-c, flush/finalize outputs).
- Implement real dynamic completions using native graph queries (topics/services/nodes/params).