Eclipse Cyclone DDS (G1): High-Performance Middleware for ROS 2
What Is Cyclone DDS?
cyclonedds_g1 is a fork of Eclipse Cyclone DDS, a highly performant and robust open-source implementation of the OMG DDS (Data Distribution Service) specification.
DDS is the backbone of modern distributed control systems, widely used in aerospace, naval command, and increasingly in robotics and autonomous vehicles. Notably, Cyclone DDS is a Tier-1 middleware for the Robot Operating System (ROS 2), responsible for transferring commands, sensor data, video, and point clouds between nodes without a single point of failure.
Tech Stack
| Layer | Technology |
|---|---|
| Core Language | C |
| Build System | CMake (3.16+) |
| Type System | OMG IDL (Interface Definition Language) |
| Parser | Bison |
| Zero-Copy / IPC | Eclipse Iceoryx (Optional) |
| Security | OpenSSL / DDS Security |
Architecture & Features
Cyclone DDS shifts the paradigm from traditional publish-subscribe messaging to a "shared data space" architecture — essentially an eventually consistent distributed database tailored for real-time control.
Zero-Configuration Discovery
Nodes on the network can discover each other automatically via multicast (DCPS - Data-Centric Publish-Subscribe) without needing a central broker. This is critical for robotic swarms and autonomous systems where network topology changes rapidly.
Strict Data Typing (XTypes)
DDS enforces a structural type system (usually defined in IDL and compiled via Bison). This guarantees that publishers and subscribers agree on data shapes at the network layer, preventing runtime crashes due to mismatched serialization. It handles automatic endianness conversion between different hardware architectures.
High-Throughput Protocol
The underlying DDSI-RTPS (Real-Time Publish-Subscribe) network stack ensures interoperability with other DDS implementations while delivering massive throughput and ultra-low latency, capable of streaming dense point clouds or uncompressed video across robotic components.
What I Learned / Engineering Decisions
Working with Cyclone DDS highlights the extreme performance requirements of real-time middleware. The architecture avoids a central message broker entirely to eliminate single points of failure.
Furthermore, the integration with Eclipse Iceoryx for zero-copy shared memory transfer demonstrates a commitment to bypassing the network stack entirely when nodes reside on the same physical machine. The core library is written in pure C for maximum portability (spanning Linux, QNX, Solaris, and Windows) and predictable memory management, avoiding the overhead and unpredictable latency sometimes associated with higher-level abstractions.