Eclipse Cyclone DDS™ 0.8.0 (Réplique) Release Review

Type
Release
State
Successful
End Date of the Review Period

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Release

0.8.0 (Réplique)

Description

The 0.8.0 (Réplique) release introduces new API’s (for C++ and Python) as well as shared-memory based communication (building on Eclipse Iceoryx). Its userbase is dramatically increased with it becoming the default DDS-implementation for ROS2 which also contributed to a wealth of other (especially non-functional) improvements and bug-fixes

Architectural Issues

​​​​The overall architecture is holding up just fine, but there remain many, mostly local, details that need reworking. The addition of DDS Security and integration with Iceoryx has unfortunately laid bare some more of these details.

Cleaning up these issues is an ongoing process, undertaken as a background activity while working towards covering all of the DDS specification family. The number of issues reported by people remains very low despite evidence of a hugely grown user base (now that Cyclone DDS is the default in ROS2), and this is also an indication that the fundamental architectural choices are sound.

Security Issues

Even though there are some bugfixes related to interpreting (in)valid inputs, we don't believe there are specific security-related fixes in Cyclone DDS itself.

Furthermore, there is currently no dependency of Cyclone DDS on any non-Eclipse project, and therefore no relationship to any of these resolved vulnerabilities. We don't currently provide binary releases and rely on users to follow best-practices of staying up to date with their dependencies, in our case, OpenSSL. (Open Robotics is providing binary packages using up-to-date dependencies). Integration with Eclipse Iceoryx (for shared-memory based communication) has not revealed security issues so far.

Non-Code Aspects

The documentation, although basic appears to be good enough for those who are willing to invest a bit and make a few educated guesses, based on the evidence of increasing usage and the questions that have been asked on GitHub.

First steps are taken towards hosting guides and documentation for CycloneDDS and its C++ and Python bindings on the new https://cyclonedds.io/ website

Conforms To UI/UX Guidelines
Not verified
Usability Details

As it is middleware the intended audience is very minimal and there is no user interface to speak of.

End of Life

None.

Standards

OMG DDS:

  • DCPS specification version 1.4 (with a more friendly API)
  • DDSI specification version 2.3
  • Security specification version 1.1
  • C++11 (ISO/IEC C++ PSM) version 1.0
  • IDL 4.2
Communities

The use of and contributions to Cyclone DDS has grown notably since becoming a tier-1 middleware in ROS2 “Galactic” and "Foxy Fitzroy", released June 5. This is visible in several ways: more well-known companies putting their logo up on the "adopters" board (https://iot.eclipse.org/adopters/?#iot.cyclonedds ), more issues and pull requests on Cyclone DDS itself, but more notably on the ROS 2 Middleware abstraction where various people have now joined in maintaining the abstraction layer. The number of downloads as reported by GitHub has gone up significantly as well.

Combining Cyclone DDS and Eclipse Iceoryx to get the best of both in a single system also increased the community and furthermore we are also aiming to combine Cyclone DDS and Eclipse Zenoh to overcome some of the scalability limitations inherent in the DDS specification.