Skip to content
OpenDDS is an open source C++ implementation of the Object Management Group (OMG) Data Distribution Service (DDS). OpenDDS also supports Java bindings through JNI.
C++ Java HTML Perl XSLT Shell Other
Branch: master
Clone or download
mitza-oci Merge pull request #1375 from kuznetsovmoci/rtps24_use_domainID
Remote domain ID, if populated, has to match
Latest commit e5808e2 Nov 15, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
DevGuideExamples Made Changes Requested Aug 9, 2019
FACE Update gen_skip_over to also return a bool Apr 12, 2017
MPC Corrected mpb bug from #1321 (#1326) Oct 15, 2019
bin Add a built-in STUN server to the RtpsRelay Nov 13, 2019
cmake cmake: link to iphlpapi without check on windows Sep 19, 2019
dds Merge pull request #1375 from kuznetsovmoci/rtps24_use_domainID Nov 15, 2019
docs Merge pull request #1256 from iguessthislldo/igtd/monotonic Sep 17, 2019
etc Enable Search and Call Graphs in Doxygen Jul 17, 2018
examples/DCPS RTPS 2.4: Use DDS::Security::Properties in tests and in examples (#1370) Nov 13, 2019
java modified TAOObject.equals() Oct 18, 2019
lib Moved OpenDDS CMake module into share directory to be consistent with… Oct 22, 2018
performance-tests Fixes for #1233 Aug 13, 2019
tests Merge pull request #1371 from iguessthislldo/igtd/issue1188 Nov 15, 2019
tools ICE and STUN features are only available when DDS Security is enabled… Nov 14, 2019
.dockerignore Problem: OpenDDS does not thrive in environments without multicast Jan 4, 2019
.gitignore configure: add --host-tools-only Jun 14, 2019
.gitmodules RapidJSON: Move Submodule, Fix Configure Message Jun 13, 2019
.mailmap Improvements and Fixes for Jan 30, 2019
.travis.yml Moved travis-ci to ubuntu 18.04 with gcc8 Nov 2, 2019
AUTHORS Improvements and Fixes for Jan 30, 2019
DDS.mwc Fix FACE TS Generation May 29, 2019
DDS_TAOv2.mwc Valuetype is needed for messaging, so removed the comment about dds4ccm Jun 6, 2017
DDS_TAOv2_all.mwc MPC Fixes for Annotation IDL Tests May 31, 2019
DDS_no_tests.mwc Restore DDS_no_tests.mwc Sep 16, 2019
Dockerfile configure: s/_/-/g in options Apr 5, 2019 Fix Typo Sep 9, 2019
LICENSE Wed Sep 23 21:36:29 UTC 2009 Steven Stallion <> Sep 23, 2009 Update Aug 1, 2019
PROBLEM-REPORT-FORM OpenDDS Release 3.13 Aug 22, 2018 README: Small typo Jul 11, 2019
VERSION OpenDDS Release 3.13 Aug 22, 2018
appveyor.yml Appveyor use ACE master for now Jan 16, 2018
azure-pipelines.yml Explicitly use ubuntu 18.04 Nov 12, 2019
configure configure: corrected compile error Aug 13, 2019
configure.cmd Check whether perl configure has returned an error, if so, log an err… Feb 7, 2019 set makefile macro for MPC feature Aug 7, 2018



Build Status Build status Coverity Scan Build Status Codacy Badge Azure DevOps

OpenDDS is an open-source C++ implementation of the Object Management Group's specification "Data Distribution Service for Real-time Systems" (DDS), as well as some other related specifications. These standards define a set of interfaces and protocols for developing distributed applications based on the publish-subscribe and distributed cache models. Although OpenDDS is itself developed in C++, Java and JMS bindings are provided so that Java applications can use OpenDDS. OpenDDS also includes support for the DDS Security specification.

OpenDDS is built on the ACE abstraction layer to provide platform portability. OpenDDS also leverages capabilities of TAO, such as its IDL compiler and as the basis of the OpenDDS DCPS Information Repository (DCPSInfoRepo).

The primary development of OpenDDS was done by Object Computing, Incorporated in St. Louis and Phoenix. It is released under generous license terms similar to ACE, TAO and MPC. See the LICENSE file for details.

Table of Contents:


Other documentation can be found in docs directory.


If you encounter any problems with this release please fill out the PROBLEM-REPORT-FORM file found in this directory and use it when posting to the mailing list or creating a GitHub Issue.

For commercial support please see


This release of OpenDDS is based on the DDS Specification formal/2015-04-10 (version 1.4). It features the following transport protocols:

  • TCP/IP
  • UDP/IP
  • IP multicast
  • RTPS over UDP/IP (unicast and multicast)

RTPS (Interoperability) features are based on the DDS-RTPS Specification formal/2014-09-01 (version 2.2). See the OpenDDS Developer's Guide and the file docs/design/RTPS for more details on RTPS.

See the Developer's Guide for information on OpenDDS compliance with the DDS specification. If you would like to contribute a feature or sponsor the developers to add a feature please see the Support section above for contact information.


For a complete detailed list of dependencies, see docs/


OpenDDS requires TAO for both IDL compilation as well as interaction with the DCPSInfoRepo. ACE is also required, but it is always included with TAO. If you will be using the configure script for OpenDDS (see the file for details), you do not need to download TAO first -- the configure script will download it for you.

There are two distributions of ACE/TAO that can be used with OpenDDS:


Perl is used for the configure script, running the automated tests and examples included in this source tree, and generating Makefiles or Visual Studio project files.

On Windows we recommend the use of ActiveState Perl.

Optional Dependencies

  • Google Test, for various tests.
    • Starting with OpenDDS 3.14, Google Test is required for OpenDDS tests. Tests are built by default, so that means Google Test is required unless --no-tests is passed to configure.
  • CMake, for building Google Test and the OpenDDS CMake module.
  • Java, for Java bindings.
  • Qt, for Monitor application and ishapes demo.
  • Wireshark, for the OpenDDS DCPS Wireshark dissector.
  • RapidJSON, for optional dissector sample dissection support and JSON typesupport.
  • Xerces, for XML QOS and DDS Security.
  • OpenSSL, for DDS Security.

Supported Platforms

Operating Systems

This release of OpenDDS has been tested under the following platforms:

Linux family:

  • Red Hat EL and CentOS 6.6 and 6.9, x86_64
  • Red Hat EL and CentOS 7.2 and 7.3, x86_64
  • Fedora 24 and 29, x86_64
  • Debian 9.4, i686
  • Ubuntu 16.04 LTS, x86_64
  • openSUSE 42.1, and 42.2, x86_64
  • Docker

Windows family:

  • Windows 7 (32-bit, 64-bit)
  • Windows Server 2012 R2 (64-bit)
  • Windows 10 (64-bit)


  • macOS 10.13 (High Sierra)


We have built OpenDDS for VxWorks 6.9 and 7 and have run basic system and performance tests (but not the entire regression test suite). Please contact or for more information on support for ACE, TAO, and OpenDDS on VxWorks. OCI's packages for ACE, TAO, and OpenDDS can be obtained on the Wind River Marketplace.


This release of OpenDDS has been tested using the following compilers:

  • Microsoft Visual C++ 9 with SP1 (Visual Studio 2008)
  • Microsoft Visual C++ 10 with SP1 (Visual Studio 2010)
  • Microsoft Visual C++ 11 (Visual Studio 2012) - Update 4
  • Microsoft Visual C++ 12 (Visual Studio 2013) - Update 5
  • Microsoft Visual C++ 14 (Visual Studio 2015) - Update 3
  • Microsoft Visual C++ 14.1 (Visual Studio 2017) cl 19.12.25835
  • gcc 4.4.7, 4.8, 4.9
  • gcc 5.4
  • gcc 6.2, 6.3
  • gcc 7.2
  • gcc 8.1, 8.2
  • Clang 6.0 ( and 9.0 (Apple)

Building and Installing

For building and installation instructions see the file in this directory.

Quick Start with Docker

See docs/ for how to use the pre-built docker image.

You can’t perform that action at this time.