A C++ implementation of the DDS (Data Distribution Service) standard for real-time publish-subscribe communications.
eProsima Fast DDS is a C++ implementation of the Object Management Group's Data Distribution Service (DDS) standard, designed for real-time publish-subscribe communications. It implements the RTPS (Real Time Publish Subscribe) protocol to enable reliable and best-effort data exchange over unreliable transports like UDP, solving the need for scalable, interoperable communication in distributed systems.
System architects and C++ developers building real-time distributed applications in fields like robotics, industrial automation, and EU R&D projects, particularly those requiring standards-compliant middleware.
Developers choose Fast DDS for its strict adherence to DDS and RTPS standards ensuring interoperability, its dual API layers offering both high-level usability and low-level control, and its proven adoption in critical systems like ROS 2 and FIWARE.
The most complete DDS - Proven: Plenty of success cases. Looking for commercial support? Contact info@eprosima.com
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements OMG DDS and RTPS standards, ensuring compatibility with other DDS implementations, as highlighted by its adoption in ROS 2 and FIWARE projects.
Offers both high-level DDS API for usability and low-level RTPS API for fine-grained control over protocol internals, allowing developers to balance ease of use with performance tuning.
Widely used as the default middleware for ROS 2 in robotics and supported in EU R&D under FIWARE, demonstrating reliability and trust in critical systems.
Supports best-effort and reliable publish-subscribe communication over unreliable transports like UDP, with interchangeable transport layers for optimized deployments.
Requires familiarity with DDS concepts and the RTPS protocol, making it less accessible for developers new to real-time middleware, as evidenced by the detailed documentation needed for setup.
Primarily a C++ library, which may not suit polyglot environments without additional language bindings or middleware, limiting its appeal for teams using other programming stacks.
Installation involves compiling from source or managing binaries, and configuration can be intricate compared to simpler messaging solutions, as noted in the extensive installation guide.