Feature description
this repo points to make proto file the single truth of idl of the ros2 system
but for now, the inner communication serdes are still cdr, because the protos are transfered to rosidl.
typeadapter(REP-2007) utility enables rmw_vendor_protobuf_cpp to use typesupport_protobuf_cpp, just like what rosidl_typesupport_protobuf did New rosidl typesupport based on Google Protobuf, with rmw_ecal_proto_cpp and rosidl_typesupport_cpp.
but rmw_ecal_proto_cpp+rosidl_typesupport_protobuf make rosidl first class, and presume user will use msg file, which did not match proto2msg’s need.
so, if typeadapter added to proto2msg, rmw_iceoryx2_proto_cpp(a fork of rmw_iceoryx2_cpp or other rmw) may use the proto as first class serdes, and cdr(when other rmw nodes join the graph), and zerocopy(if idl is a supported POD).
Additional considerations
flatros2 is a non intrusive modification of ros2 to enable flatbuffer serdes
https://github.com/Ekumen-OS/flatros2/blob/main/README.md
Feature description
this repo points to make proto file the single truth of idl of the ros2 system
but for now, the inner communication serdes are still cdr, because the protos are transfered to rosidl.
typeadapter(REP-2007) utility enables rmw_vendor_protobuf_cpp to use typesupport_protobuf_cpp, just like what rosidl_typesupport_protobuf did New rosidl typesupport based on Google Protobuf, with rmw_ecal_proto_cpp and rosidl_typesupport_cpp.
but rmw_ecal_proto_cpp+rosidl_typesupport_protobuf make rosidl first class, and presume user will use msg file, which did not match proto2msg’s need.
so, if typeadapter added to proto2msg, rmw_iceoryx2_proto_cpp(a fork of rmw_iceoryx2_cpp or other rmw) may use the proto as first class serdes, and cdr(when other rmw nodes join the graph), and zerocopy(if idl is a supported POD).
Additional considerations
flatros2 is a non intrusive modification of ros2 to enable flatbuffer serdes
https://github.com/Ekumen-OS/flatros2/blob/main/README.md