Skip to main content

API Reference

HDDS provides native bindings for multiple programming languages. Each binding is designed to feel idiomatic in its target language while maintaining consistent DDS semantics.

Supported Languages

LanguagePackageDocumentation
Rusthddsdocs.rs/hdds
ClibhddsC API
C++hdds-cppC++ API
PythonhddsPython API

Quick Reference

Creating a Participant

use hdds::prelude::*;

let participant = DomainParticipant::new(0)?;

Creating a Topic

let topic = participant.create_topic::<MyType>("my/topic")?;

Writing Data

let writer = participant.create_writer(&topic)?;
writer.write(&data)?;

Reading Data

let reader = participant.create_reader(&topic)?;
while let Some(sample) = reader.take()? {
println!("{:?}", sample);
}

Core Entities

All DDS implementations share the same core entities:

Feature Comparison

FeatureRustCC++Python
Async/AwaitYesNoC++20Yes
Zero-copyYesYesYesNo
CallbacksYesYesYesYes
Type SafetyCompile-timeRuntimeCompile-timeRuntime
Memory SafetyGuaranteedManualManualGC