AstuteDDS Documentation

AstuteDDS delivers real-time, secure data distribution for mission-critical systems — from military land vehicles and unmanned platforms to robotics and industrial automation. It provides a standards-compliant DDS implementation that connects every subsystem in your platform over a single, reliable data bus, with no runtime dependencies and no vendor lock-in.

Astute Inspect: See Your DDS System Live

Astute Inspect is AstuteDDS's visual diagnostics and topology workspace for DDS domains. It helps teams detect QoS mismatches, validate endpoint connectivity, and monitor live traffic quickly during integration and interoperability testing.

Astute Inspect hero view showing live topology, QoS diagnostics, and traffic analysis

Learn more in the Astute Inspect documentation.

What is AstuteDDS?

AstuteDDS is a C++20 static library (libastutedds.a) that brings together everything you need to build and deploy DDS-based systems:

  • Proven interoperability — wire-compatible with OpenDDS, Fast DDS, Cyclone DDS, and RTI Connext via DDSI-RTPS 2.5
  • Complete type system — DDS-XTypes 1.3 with TypeObject, assignability, and dynamic types for seamless cross-vendor data exchange
  • Standards-compliant serialisation — XCDR1/XCDR2 with delimited headers and mutable types
  • IDL 4.2 compiler — generate ready-to-use C++ from your data model in one step
  • GVA profile — built-in support for UK Def Stan 23-009 Generic Vehicle Architecture
  • Durability & persistence — TRANSIENT and PERSISTENT modes for late-joining readers and survivable data stores
  • Recording & replay — capture live DDS streams to disk and replay with original timing for test and analysis
  • Optional DDS Security — authentication, access control, and AES-GCM encryption when your programme requires it


Features & Capabilities

AstuteDDS is production-complete. All OMG DDS 1.4, DDSI-RTPS 2.5, DDS-XTypes 1.3, and DDS Security 1.1/1.2 features are implemented and interoperability-verified.

Category Capabilities
Standards Compliance DDS 1.4 · DDSI-RTPS 2.5 · DDS-XTypes 1.3 · DDS Security 1.1/1.2 · OMG IDL 4.2
Wire Protocol SPDP · SEDP · UDP unicast & multicast · TCP · Shared memory · DATA_FRAG / NACK_FRAG
Reliability HEARTBEAT / ACKNACK · History cache · Resource limits · All 22 OMG QoS policies
Serialisation XCDR1 · XCDR2 with DHEADER and EMHEADER · DDS-XML QoS profile loader
IDL Compiler IDL 4.2 → C++ · @key · @optional · @data_representation · full annotation support
X-Types TypeObject · TypeIdentifier · Assignability · DynamicData · TypeLookup Service
DCPS API All core entities · Content-Filtered Topics · Writer-side filtering · ROS 2 bridge helpers
Persistence TRANSIENT and PERSISTENT durability · Persistence Service for late-joining readers
Recording & Replay Capture DDS payload streams to disk · replay with original timing (DataLogTool)
Security Authentication · Access Control · AES-GCM Crypto SPIs · certificate-based identity
Domain Routing Bridge topics and traffic between DDS domains with type compatibility checking
Deployment Modern C++20 · single static library (libastutedds.a) · no runtime dependencies
Tools IDL compiler · Astute Inspect GUI · Qt6 Shapes Demo · JSON discovery config
Interoperability Verified against OpenDDS, Fast DDS, Cyclone DDS, and RTI Connext

Supported Operating Systems

  • Windows
  • RHEL Family: RHEL, Rocky Linux, AlmaLinux
  • Debian Family: Debian, Ubuntu, and compatible clones

Example: Hello World

#include "HelloWorld.hpp"

#include <astutedds/dcps/CorePolicy.hpp>
#include <astutedds/dcps/dcps.hpp>
#include <astutedds/dcps/qos.hpp>

int main()
{
    dds::domain::DomainParticipant participant(0, 0);
    dds::topic::Topic<Demo::HelloWorld> topic(participant, "HelloWorldTopic");
    dds::pub::Publisher publisher(participant);

    astutedds::dcps::DataWriterQos wqos{};
    wqos.reliability.kind = astutedds::dcps::ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS;

    dds::pub::DataWriter<Demo::HelloWorld> writer(publisher, topic, wqos);

    Demo::HelloWorld msg;
    msg.id(1);
    msg.message("Hello, DDS World!");
    writer.write(msg);

    return 0;
}

Documentation Structure

This documentation is organized into several sections:

  • Getting Started: Installation, building, and basic concepts
  • DDS Concepts: Core DDS principles and terminology
  • Guides: Step-by-step tutorials for common tasks
  • API Reference: Detailed API documentation
  • Examples: Code examples and use cases
  • About: Architecture, specifications, and project information

Need Help?

License

AstuteDDS is open source software. See the License page for details.