Skip to main content

Getting Started with HDDS

Welcome to HDDS, a high-performance DDS (Data Distribution Service) middleware written in pure Rust. This guide will help you get started quickly.

Quick Start

# Clone HDDS
git clone https://git.hdds.io/hdds/hdds.git

# In your project's Cargo.toml, add:
# hdds = { path = "../hdds/crates/hdds" }
use hdds::{Participant, TransportMode, Result};

fn main() -> Result<()> {
// Create a participant on domain 0
let participant = Participant::builder("my_app")
.domain_id(0)
.with_transport(TransportMode::UdpMulticast)
.build()?;

// Create a topic
let topic = participant.topic::<Temperature>("sensor/temp")?;

// Create a publisher and write data
let writer = topic.writer().build()?;
writer.write(&Temperature { value: 23.5 })?;

Ok(())
}

What's Next?

Learn the Basics

Understand DDS concepts and RTPS protocol fundamentals.

Install HDDS

Get HDDS installed on Linux, macOS, or Windows.

Build Something

Follow our step-by-step Hello World tutorial.

Why HDDS?

FeatureHDDSFastDDSCycloneDDSRTI Connext
LanguagePure RustC++CC/C++
Memory SafetyGuaranteedManualManualManual
LatencySub-microsecond~1-5 µs~2-10 µs~1-5 µs
Zero-copyYesPartialPartialYes
Multi-languageRust, C, C++, PythonC++, PythonC, PythonC, C++, Java, C#, Python
LicenseApache 2.0Apache 2.0Eclipse 2.0Commercial

Architecture Overview