-
Notifications
You must be signed in to change notification settings - Fork 60
Description
I'm working on a project that involves 2 kinds of IDL: ROS2 message and Protocol Buffers (a.k.a., protobuf).
proto2ros provides tooling to automatically generate ROS 2 message interfaces and conversion code from Protobuf definitions, enabling seamless interoperability between Protobuf-based APIs and the ROS 2 ecosystem.
It would be extremely helpful if rules_ros2
could offer first-class support or integration for proto2ros
workflows, similar to how it currently supports vanilla ROS 2 messages and services. This would allow users to:
- Automate the generation of ROS 2 messages and conversion code from
.proto
files within Bazel builds. - Manage dependencies on Protobuf definitions and corresponding generated code in a Bazel-native way.
- Write Bazel rules/macros that encapsulate the typical
proto2ros
pipeline (e.g., fetching/updating.proto
files, generating messages, linking conversion libraries). - Easily interoperate with upstream or third-party Protobuf packages in a ROS 2 context.
Potential benefits:
- Simplifies multi-IDL projects and code sharing between ROS 2 and non-ROS systems.
- Enables teams to leverage existing Protobuf definitions and tooling in ROS 2 projects.
- Reduces manual boilerplate and potential for errors in data conversion layers.
Suggested features:
- A
proto2ros_library
(or similar) Bazel rule that takes.proto
files as input and produces both Protobuf and ROS 2 message artifacts. - Example workspace demonstrating integration.
Please let me know if there are any technical considerations, plans, or obstacles regarding this kind of support. I’d be happy to help test or provide more project context if needed!
Thanks for your consideration.