We have support for four different RMW implemenations at the moment:
- RTI Connext (using message specific code generation)
- RTI Connext “dynamic” (using generic message introspection)
- OpenSplice (using message specific code generation)
- FastRTPS (using generic message introspection)
While we have been developing the RMW interface, the type support system as well as the ROS client libraries we were using multiple implementation to ensure that our design decision are solid and not specific to a single vendor. Since these interfaces have matured by now we have revisited how many different RMW implementation we should actively support. Since maintaining support for a RMW implementation takes quite some effort and we are a very small team we decided to reduce the set to two implementations for now. That will allow us to spend our time on other things.
To the question why we chose FastRTPS and Connext:
For a long time OpenSplice was out default since it comes with an open license (LGPL). But recently FastRTPS has catched up and provides all the feature we need to implement the RMW interface with it as well as changed their license to Apache 2. FastRTPS is actively developed and we have a health relationship with the company behind it (eProsima). For OpenSplice the situation is less optimal atm. The latest release of their DDS implementation is not available as an open source edition. And that is not likely to change within the next twelve month. Also any ticket / pull request is being ignored - their GitHub repo of the open source edition is basically a one-time-code-dump. Therefore we decided that it is time to switch our focus on FastRTPS and not actively work and test with OpenSplice for the mid-term future.
Connext support is still very important to us despite the fact that its license is not that open. It is the major vendor in the DDS market driving standardization (e.g. the upcoming security spec) and is being used by several parties which support OSRF with funding. Therefore we will continue to actively support the Connext RMW implementation. The dynamic variation will for now also not be actively supported since it is more of a case study and the introspection type support system is sufficiently exercised by FastRTPS.
So the set for the mid-term future will be:
- RTI Connext (using message specific code generation)
- FastRTPS (using generic message introspection)