feat(transport): add Rust subscribe-all API - #3935
Conversation
|
@greptile please review |
Greptile SummaryAdds a native Rust API for receiving every DimOS topic, including topics that are created after a module starts. Zenoh wildcard delivery was exercised successfully with the exact topic name and payload preserved. Confidence Score: 5/5Safe to merge. No actionable issues were identified. The focused Rust coverage passed for wildcard subscription delivery on a topic created after registration. Files Needing Attention: None.
What T-Rex did
Reviews (1): Last reviewed commit: "feat(rust): add subscribe-all API" | Re-trigger Greptile |
|
so you got nothin' @greptile? |
|
Not nothing — this is a clean pass. I found no actionable correctness or compatibility issues.
Safe to merge. |
|
hey @spomichter can please run the pending ci? |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #3935 +/- ##
==========================================
- Coverage 78.19% 78.19% -0.01%
==========================================
Files 1430 1430
Lines 135238 135238
Branches 11713 11713
==========================================
- Hits 105753 105751 -2
- Misses 26165 26170 +5
+ Partials 3320 3317 -3
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
hey @aclauer, CI is green now. can you take a look when you get a chance? 🙏 |
4886207 to
b21c306
Compare
|
@spomichter 🙏 please review when possible |
Contribution path
Problem
Rust modules can only subscribe through fixed input ports. The Rerun bridge and similar modules need every topic, including topics created after startup.
Solution
Add
Builder::subscribe_allthrough the existing transport API.LCM reuses its receive loop and filters
LCM_SELF_TEST. Zenoh subscribes todimos/**. Callbacks receive the raw payload and topic name, run on the transport delivery path, and remain registered for the transport lifetime.The default implementation returns
Unsupported, so existing transports keep compiling.How to Test
From
native/rust:3 focused tests and all 143 crate tests pass. Clippy, workspace checks, and formatting are clean.
AI assistance
Codex with GPT-5 was used for implementation and testing.
Checklist