Skip to content

[Feature Request] Support proto2ros #500

@Skeleton003

Description

@Skeleton003

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions