Back to Blog
Backend Development

Eclipse Cyclone DDS (G1): High-Performance Middleware for ROS 2

View Repository on GitHubLive Website / Demo

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

LayerTechnology
Core LanguageC
Build SystemCMake (3.16+)
Type SystemOMG IDL (Interface Definition Language)
ParserBison
Zero-Copy / IPCEclipse Iceoryx (Optional)
SecurityOpenSSL / 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.

View on GitHub →