Skip to content

Data-Distribution Service (DDS) Operators#

Authors: Ian Stewart (NVIDIA)
Supported platforms: x86_64, aarch64
Language: C++
Last modified: August 5, 2025
Latest version: 1.0
Minimum Holoscan SDK version: 2.0.0
Tested Holoscan SDK versions: 2.0.0
Contribution metric: Level 2 - Trusted

This folder contains operators that allow applications to publish or subscribe to data topics in a DDS domain using RTI Connext. These operators demonstrate the ability for Holoscan applications to integrate and interoperate with applications outside of Holoscan, taking advantage of the data-centric and distributed nature of DDS to quickly enable communication with a wide array of external applications and platforms.

Requirements#

RTI Connext must be installed on the system and a valid RTI Connext license must be installed to run any application using one of these operators. To build on an IGX devkit (using the armv8 architecture), follow the instructions to build Connext DDS applications for embedded Arm targets up to step 5 (Installing Java and setting JREHOME).

To build the operators, the RTI_CONNEXT_DDS_DIR CMake variable must point to the installation path for RTI Connext. This can be done automatically by setting the NDDSHOME environment variable to the RTI Connext installation directory (such as when using the RTI setenv scripts), or manually at build time, e.g.:

$ ./holohub build dds_video --configure-args="-DRTI_CONNEXT_DDS_DIR=~/rti/rti_connext_dds-7.3.0"

Using a Development Container#

Due to the license requirements of RTI Connext it is not currently supported to install RTI Connext into a development container. Instead, if a development container is to be used, Connext should be installed onto the host as above and then the container can be launched with the RTI Connext folder mounted at runtime. To do so, ensure that the NDDSHOME and CONNEXTDDS_ARCH environment variables are set (which can be done using the RTI setenv script) and use the following:

./holohub run --docker-opts "-v $NDDSHOME:/opt/dds -e NDDSHOME=/opt/dds -e CONNEXTDDS_ARCH=$CONNEXTDDS_ARCH"