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
RusthddsRust API
ClibhddsC API
C++hdds-cppC++ API
PythonhddsPython API
TypeScript@hdds/clienthdds-ws WebSocket Bridge

Quick Reference​

Creating a Participant​

use hdds::{Participant, TransportMode};

let participant = Participant::builder("my_app")
.domain_id(0)
.with_transport(TransportMode::UdpMulticast)
.build()?;

Creating a Writer​

let writer = participant
.topic::<Temperature>("sensors/temp")?
.writer()
.qos(QoS::reliable())
.build()?;

Writing Data​

let sample = Temperature { sensor_id: 1, value: 23.5 };
writer.write(&sample)?;

Reading Data​

while let Some(sample) = reader.take()? {
println!("Received: {:?}", sample);
}

Core Entities​

All DDS implementations share the same core entities:

Feature Comparison​

FeatureRustCC++Python
Typed Data#[derive(DDS)]hdds_genhdds_genhdds_gen
Raw BytesYesYesYesYes
Fluent QoSYesNoYesYes
RAIIYesManualYesContext Mgr
WaitSetYesYesYesYes
TelemetryYesYesYesYes
Async/AwaitPlannedNoNoPlanned
ListenersYesYesYesYes