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

# Add HDDS to your Cargo.toml
cargo add hdds
use hdds::prelude::*;

fn main() -> Result<()> {
// Create a participant on domain 0
let participant = DomainParticipant::new(0)?;

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

// Create a publisher and write data
let writer = participant.create_writer(&topic)?;
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