OpenDDS

OpenDDS 是对象管理组(OMG)数据分发服务(DDS)的一个开源c++实现。OpenDDS还通过JNI支持Java绑定。「OpenDDS is an open source C++ implementation of the Object Management Group (OMG) Data Distribution Service (DDS). OpenDDS also supports Java bindings through JNI.」

Github stars Tracking Chart

OpenDDS

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:

Documentation

Other documentation can be found in docs directory.

Support

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 http://opendds.org/support.html.

Features

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.

Dependencies

For a complete detailed list of dependencies, see
docs/dependencies.md.

ACE/TAO

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
INSTALL.md 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

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.
  • 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)

Others:

  • macOS 10.13 (High Sierra)

Embedded/Mobile/IoT:

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 sales@objectcomputing.com or opendds-main@lists.sourceforge.net
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
.

Compilers

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 (llvm.org) and 9.0 (Apple)

Building and Installing

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

Quick Start with Docker

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

Overview

Name With OwnerOpenDDS/OpenDDS
Primary LanguageC++
Program languageC++ (Language Count: 16)
PlatformAndroid, Docker, Embedded Systems, Linux, Mac, Raspbian, Windows
License:Other
Release Count285
Last Release Namegreen-34e (Posted on 2024-05-02 16:51:01)
First Release NameDDS-Initial-Stand-Alone (Posted on 2005-06-10 18:18:48)
Created At2015-02-12 20:01:26
Pushed At2024-05-07 16:31:28
Last Commit At2024-05-06 13:06:57
Stargazers Count1.3k
Watchers Count68
Fork Count464
Commits Count23.9k
Has Issues Enabled
Issues Count747
Issue Open Count117
Pull Requests Count3426
Pull Requests Open Count15
Pull Requests Close Count266
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top