// the find
eProsima/Fast-DDS
The most complete DDS - Proven: Plenty of success cases. Looking for commercial support? Contact info@eprosima.com
Fast DDS is eProsima's C++ implementation of the OMG DDS standard, including the RTPS wire protocol. It's the default middleware for ROS 2, which means if you're doing robotics or any real-time distributed pub/sub on Linux/Windows/macOS/QNX, this is the production-proven option — not an experiment.
The dual-API design is genuinely useful: you can stay at the high-level DDS Publisher/Subscriber layer for most work, then drop to raw RTPS Writer/Reader when you need to squeeze latency or control fragmentation. CI runs nightly across Ubuntu, Windows, and macOS with ASAN/TSAN/UBSAN passes, which is more sanitizer coverage than most C++ projects bother with. QNX build support (with patches for asio, foonathan/memory, etc.) is a real differentiator for anyone targeting safety-critical embedded targets. The examples directory is unusually thorough — content filtering, flow control, custom payload pools, discovery server, security with actual cert files — not just hello world.
The setup cost is high: you need Fast-CDR, foonathan/memory, and optionally OpenSSL for security, and the CMake dependency chain is enough to make a grown adult cry. IDL-based type definition means you're running a code generator (Fast DDS Gen) before you can define a topic — dynamic types exist but are poorly documented compared to the compiled path. The XML profile configuration system is powerful but the error messages when you get it wrong are essentially useless, and there's no schema validation tooling bundled. Stars-to-adoption ratio is skewed by ROS 2 dependency-pulling it in; most ROS users never touch the DDS layer directly, so community help outside the robotics niche is thin.