Fast-CDR icon indicating copy to clipboard operation
Fast-CDR copied to clipboard

Fast-Buffers vs Fast-CDR vs Dynamic Fast-Buffers [13746]

Open BillBarnhill opened this issue 5 years ago • 2 comments

I have seen recommendations for eProsima's Fast-Buffers library (https://github.com/eProsima/Fast-Buffers), which serializes based on an IDL. However, that library has not had a commit since 2014. Fast-CDR is active, but does not appear to serialize based on IDL. I'd appreciate it you could answer the questions below.

What is the current status of Fast-Buffers?

What are the current relationships between Fast-Buffers, Fast-CDR, and Dynamic Fast-Buffers?

What is a means to use IDL based serialization using Fast-CDR, if there is one? I suspect there is, since I think Fast-RTPS is built on Fast-CDR.

In attempting to build Fast-Buffers there was a missing parallel project ("idl") with the idl.grammar file in it - where can I find that project?

Thank you for your help, Bill

BillBarnhill avatar Aug 06 '19 14:08 BillBarnhill

https://github.com/ros2/rmw_fastrtps/blob/6.1.2/rmw_fastrtps_shared_cpp/src/TypeSupport_impl.cpp#L64 This piece of code will serialize ROS Msg object to wire payload binaries, so to my understanding: Fast-CDR is a serialization library, it can be used alone. Fast-Buffer is just a buffer implementation, it can be used together with Fast-CDR like the referenced code to achive better serialization performance. The referenced project does not use OMG IDL(it use EmPy to generate cpp code to iterate ROS Msg object and write each member to the Fast-CDR object), so I don't known the relation between Fast-CDR and OMG IDL.

tsingakbar avatar Feb 14 '22 09:02 tsingakbar

https://fast-dds.docs.eprosima.com/en/latest/fastddsgen/introduction/introduction.html I think things like this fills the gap between OMG IDL and Fast-CDR. To my understanding, OMG CDR only serialize basic types like integer or string, and RTPS defines how to glue basic types to OMG IDL complex data types such as struct.

tsingakbar avatar Feb 14 '22 09:02 tsingakbar

Currently Fast CDR is the only officially maintained implementation for the CDR serialization defined in the DDS interoperability wire protocol (DDSI-RTPS).

JLBuenoLopez avatar Oct 02 '23 05:10 JLBuenoLopez