Repository Summary

Description
Checkout URI https://github.com/IntellectusCorp/rmw_int2dds.git
VCS Type git
VCS Version humble
Last Updated 2026-10-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

ROS 2 RMW for int2DDS

A **ROS 2 RMW implementation** that binds the **int2DDS** DDS/RTPS middleware to the ROS 2 middleware (RMW) interface.

Overview

rmw_int2dds_cpp lets ROS 2 applications run on top of int2DDS, a Rust implementation of the OMG DDS standard (RTPS 2.5). It implements the ROS 2 rmw C interface so that any ROS 2 stack (rclcpp, rclpy, ros2 CLI, tools) can use int2DDS as its middleware via RMW_IMPLEMENTATION=rmw_int2dds_cpp.

Status: work in progress — APIs and test results are being stabilized ahead of a request for Tier 3 status in REP 2000.

Supported ROS 2 distributions

Distribution Status
Humble Hawksbill (LTS) Supported (verified)
Jazzy Jalisco (LTS) Supported (verified)
Lyrical Luth (LTS) Supported (verified, except cross-vendor WStrings - see Known issues)
Rolling Ridley Supported (verified, except cross-vendor WStrings - see Known issues)

Supported platforms

Platform amd64 arm64 arm32
Ubuntu 22.04 (Jammy) Verified Verified Verified
Windows 10 Verified (on Windows 11)    
RHEL 8 Verified    
Ubuntu 20.04 (Focal) Verified Verified Verified
macOS Verified    
Debian 11 (Bullseye) Verified Verified Verified
OpenEmbedded / Yocto Verified Verified Verified
  • Windows: verified on Windows 11 with Visual Studio 2019. See Windows and macOS.
  • macOS: verified on macOS 15.
  • OpenEmbedded / Yocto: verified with a local layer that adds the rmw_int2dds recipes. arm32 needs one change in meta-ros: in meta-ros2/classes/ros_ament_cmake.bbclass, replace inherit cmake python3native with inherit cmake python3targetconfig. Without it, the ROS 2 message packages fail with a LONG_BIT error before rmw_int2dds is reached (ros/meta-ros#1205, fix). Boards running an older kernel also need OLDEST_KERNEL set to that kernel (tested on NanoPi, kernel 4.14: OLDEST_KERNEL = "4.14").

Installation

From the ROS 2 apt repository

sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

apt install pulls in the int2dds_ffi_vendor package automatically. The RMW library and its ament-index marker install into /opt/ros/humble/, so once the environment is sourced only RMW_IMPLEMENTATION needs to be set.

Supported: humble / jazzy / lyrical / rolling × amd64 / arm64 (rolling: testing repository only).

From the ROS 2 RPM repository (RHEL)

With the ROS 2 RPM repository set up as in the ROS 2 RHEL installation guide:

sudo dnf install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

Latest version (testing repository or source build)

The newest release is available from the ROS 2 testing repository:

sudo apt install -y ros2-testing-apt-source
sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp

To build from source instead, follow Quick Start.

Windows and macOS

There are no binary packages of rmw_int2dds for Windows or macOS: build it from source on top of a ROS 2 installation made with the ROS 2 installation guide for that platform. int2dds_ffi_vendor downloads the FFI for the host from the int2DDS releases.

Windows, in an x64 Native Tools Command Prompt for VS 2019. The commands below assume ROS 2 Humble in C:\pixi_ws\ros2-windows; change the paths to match your installation. The ROS 2 Windows binaries are Release builds, so build rmw_int2dds as Release too:

```bat cd /d C:\pixi_ws pixi shell call C:\pixi_ws\ros2-windows\local_setup.bat

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to rmw_int2dds_cpp

Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the int2DDS repository.

Code of Conduct

This project adheres to a Code of Conduct.

Contributor License Agreement (CLA)

By submitting a pull request you agree to the project CLA (individual / corporate).

Development Environment

Prerequisites

  • A supported ROS 2 distribution (Humble or Jazzy) installed and sourced
  • colcon build tool
  • A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4
  • The int2DDS core library available as a dependency

Workspace setup

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/IntellectusCorp/rmw_int2dds.git
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y

Building and Testing

# Build
colcon build --packages-up-to rmw_int2dds_cpp

# Run this package's tests
colcon test --packages-select rmw_int2dds_cpp
colcon test-result --verbose

# Run the RMW interface conformance suite against int2DDS
RMW_IMPLEMENTATION=rmw_int2dds_cpp \
  colcon test --packages-select test_rmw_implementation

Tier 3 listing requires the full test_rmw_implementation suite to pass.

Code Style

This package follows the ROS 2 Code Style and Language Versions guide:

  • C++17, max line length 100, .hpp/.cpp extensions
  • Linters run as tests via ament_lint_auto + ament_lint_common (ament_clang_format, ament_cpplint, ament_uncrustify, ament_cppcheck)
  • Build with -Wall -Wextra -Wpedantic
# Run linters
colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint

Commit Messages

Use the format TYPE: short description (max 72 chars), imperative mood. Types: FEAT, FIX, DOCS, STYLE, REFACTOR, TEST, CHORE, PERF. Reference issues with Fixes #123.

Branch Naming

feature/, fix/, hotfix/, docs/, refactor/, test/ prefixes; lowercase with hyphens (e.g., feature/qos-deadline).

Pull Request Process

  1. Rebase on the latest upstream/main.
  2. Ensure colcon build and colcon test pass, including linters.
  3. Update documentation and CHANGELOG.rst if behavior or APIs changed.
  4. Open a PR with a clear summary, rationale, and testing notes.
  5. Request review from maintainers.

Reporting Bugs

Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow SECURITY.md instead.

License

By contributing, you agree your contributions are licensed under the Apache License 2.0.

License of contributions

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that

File truncated at 100 lines see the full file

# Contributing to rmw_int2dds_cpp Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the [int2DDS](https://github.com/IntellectusCorp/int2DDS) repository. ## Code of Conduct This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). ## Contributor License Agreement (CLA) By submitting a pull request you agree to the project CLA ([individual](CLA-Individual.md) / [corporate](CLA-Corporate.md)). ## Development Environment ### Prerequisites - A supported **ROS 2** distribution (Humble or Jazzy) installed and sourced - **colcon** build tool - A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4 - The **int2DDS** core library available as a dependency ### Workspace setup ```bash mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src git clone https://github.com/IntellectusCorp/rmw_int2dds.git cd ~/ros2_ws rosdep install --from-paths src --ignore-src -r -y ``` ## Building and Testing ```bash # Build colcon build --packages-up-to rmw_int2dds_cpp # Run this package's tests colcon test --packages-select rmw_int2dds_cpp colcon test-result --verbose # Run the RMW interface conformance suite against int2DDS RMW_IMPLEMENTATION=rmw_int2dds_cpp \ colcon test --packages-select test_rmw_implementation ``` > Tier 3 listing requires the full `test_rmw_implementation` suite to pass. ## Code Style This package follows the ROS 2 [Code Style and Language Versions](https://docs.ros.org/en/jazzy/The-ROS2-Project/Contributing/Code-Style-Language-Versions.html) guide: - C++17, max line length 100, `.hpp`/`.cpp` extensions - Linters run as tests via `ament_lint_auto` + `ament_lint_common` (`ament_clang_format`, `ament_cpplint`, `ament_uncrustify`, `ament_cppcheck`) - Build with `-Wall -Wextra -Wpedantic` ```bash # Run linters colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint ``` ## Commit Messages Use the format `TYPE: short description` (max 72 chars), imperative mood. Types: `FEAT`, `FIX`, `DOCS`, `STYLE`, `REFACTOR`, `TEST`, `CHORE`, `PERF`. Reference issues with `Fixes #123`. ## Branch Naming `feature/`, `fix/`, `hotfix/`, `docs/`, `refactor/`, `test/` prefixes; lowercase with hyphens (e.g., `feature/qos-deadline`). ## Pull Request Process 1. Rebase on the latest `upstream/main`. 2. Ensure `colcon build` and `colcon test` pass, including linters. 3. Update documentation and `CHANGELOG.rst` if behavior or APIs changed. 4. Open a PR with a clear summary, rationale, and testing notes. 5. Request review from maintainers. ## Reporting Bugs Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow [SECURITY.md](SECURITY.md) instead. ## License By contributing, you agree your contributions are licensed under the [Apache License 2.0](LICENSE). ## License of contributions Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that File truncated at 100 lines [see the full file](https://github.com/IntellectusCorp/rmw_int2dds/tree/humble/CONTRIBUTING.md)

Repository Summary

Description
Checkout URI https://github.com/IntellectusCorp/rmw_int2dds.git
VCS Type git
VCS Version jazzy
Last Updated 2026-10-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

ROS 2 RMW for int2DDS

A **ROS 2 RMW implementation** that binds the **int2DDS** DDS/RTPS middleware to the ROS 2 middleware (RMW) interface.

Overview

rmw_int2dds_cpp lets ROS 2 applications run on top of int2DDS, a Rust implementation of the OMG DDS standard (RTPS 2.5). It implements the ROS 2 rmw C interface so that any ROS 2 stack (rclcpp, rclpy, ros2 CLI, tools) can use int2DDS as its middleware via RMW_IMPLEMENTATION=rmw_int2dds_cpp.

Status: work in progress — APIs and test results are being stabilized ahead of a request for Tier 3 status in REP 2000.

Supported ROS 2 distributions

Distribution Status
Humble Hawksbill (LTS) Supported (verified)
Jazzy Jalisco (LTS) Supported (verified)
Lyrical Luth (LTS) Supported (verified, except cross-vendor WStrings - see Known issues)
Rolling Ridley Supported (verified, except cross-vendor WStrings - see Known issues)

Supported platforms

Platform amd64 arm64 arm32
Ubuntu 24.04 (Noble) Verified Verified Verified
Windows 10 Verified (on Windows 11)    
RHEL 9 Verified    
Ubuntu 22.04 (Jammy) Verified    
macOS Verified    
Debian 12 (Bookworm) Verified Verified Verified
OpenEmbedded / Yocto Verified Verified Verified
  • Windows: verified on Windows 11 with Visual Studio 2019. See Windows and macOS.
  • macOS: verified on macOS 15.
  • OpenEmbedded / Yocto: verified with a local layer that adds the rmw_int2dds recipes. arm32 needs one change in meta-ros: in meta-ros2/classes/ros_ament_cmake.bbclass, replace inherit cmake python3native with inherit cmake python3targetconfig. Without it, the ROS 2 message packages fail with a LONG_BIT error before rmw_int2dds is reached (ros/meta-ros#1205, fix). Boards running an older kernel also need OLDEST_KERNEL set to that kernel (tested on NanoPi, kernel 4.14: OLDEST_KERNEL = "4.14").

Installation

From the ROS 2 apt repository

sudo apt update
sudo apt install ros-jazzy-rmw-int2dds-cpp
source /opt/ros/jazzy/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

apt install pulls in the int2dds_ffi_vendor package automatically. The RMW library and its ament-index marker install into /opt/ros/jazzy/, so once the environment is sourced only RMW_IMPLEMENTATION needs to be set.

Supported: humble / jazzy / lyrical / rolling × amd64 / arm64 (rolling: testing repository only).

From the ROS 2 RPM repository (RHEL)

With the ROS 2 RPM repository set up as in the ROS 2 RHEL installation guide:

sudo dnf install ros-jazzy-rmw-int2dds-cpp
source /opt/ros/jazzy/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

Latest version (testing repository or source build)

The newest release is available from the ROS 2 testing repository:

sudo apt install -y ros2-testing-apt-source
sudo apt update
sudo apt install ros-jazzy-rmw-int2dds-cpp

To build from source instead, follow Quick Start.

Windows and macOS

There are no binary packages of rmw_int2dds for Windows or macOS: build it from source on top of a ROS 2 installation made with the ROS 2 installation guide for that platform. int2dds_ffi_vendor downloads the FFI for the host from the int2DDS releases.

Windows, in an x64 Native Tools Command Prompt for VS 2019, with ROS 2 Jazzy installed as in the ROS 2 Windows binary guide (C:\pixi_ws). The ROS 2 Windows binaries are Release builds, so build rmw_int2dds as Release too:

```bat cd /d C:\pixi_ws pixi shell call C:\pixi_ws\ros2-windows\local_setup.bat md C:\dev\ros2_ws\src

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to rmw_int2dds_cpp

Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the int2DDS repository.

Code of Conduct

This project adheres to a Code of Conduct.

Contributor License Agreement (CLA)

By submitting a pull request you agree to the project CLA (individual / corporate).

Development Environment

Prerequisites

  • A supported ROS 2 distribution (Humble or Jazzy) installed and sourced
  • colcon build tool
  • A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4
  • The int2DDS core library available as a dependency

Workspace setup

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/IntellectusCorp/rmw_int2dds.git
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y

Building and Testing

# Build
colcon build --packages-up-to rmw_int2dds_cpp

# Run this package's tests
colcon test --packages-select rmw_int2dds_cpp
colcon test-result --verbose

# Run the RMW interface conformance suite against int2DDS
RMW_IMPLEMENTATION=rmw_int2dds_cpp \
  colcon test --packages-select test_rmw_implementation

Tier 3 listing requires the full test_rmw_implementation suite to pass.

Code Style

This package follows the ROS 2 Code Style and Language Versions guide:

  • C++17, max line length 100, .hpp/.cpp extensions
  • Linters run as tests via ament_lint_auto + ament_lint_common (ament_clang_format, ament_cpplint, ament_uncrustify, ament_cppcheck)
  • Build with -Wall -Wextra -Wpedantic
# Run linters
colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint

Commit Messages

Use the format TYPE: short description (max 72 chars), imperative mood. Types: FEAT, FIX, DOCS, STYLE, REFACTOR, TEST, CHORE, PERF. Reference issues with Fixes #123.

Branch Naming

feature/, fix/, hotfix/, docs/, refactor/, test/ prefixes; lowercase with hyphens (e.g., feature/qos-deadline).

Pull Request Process

  1. Rebase on the latest upstream/main.
  2. Ensure colcon build and colcon test pass, including linters.
  3. Update documentation and CHANGELOG.rst if behavior or APIs changed.
  4. Open a PR with a clear summary, rationale, and testing notes.
  5. Request review from maintainers.

Reporting Bugs

Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow SECURITY.md instead.

License

By contributing, you agree your contributions are licensed under the Apache License 2.0.

License of contributions

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that

File truncated at 100 lines see the full file

# Contributing to rmw_int2dds_cpp Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the [int2DDS](https://github.com/IntellectusCorp/int2DDS) repository. ## Code of Conduct This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). ## Contributor License Agreement (CLA) By submitting a pull request you agree to the project CLA ([individual](CLA-Individual.md) / [corporate](CLA-Corporate.md)). ## Development Environment ### Prerequisites - A supported **ROS 2** distribution (Humble or Jazzy) installed and sourced - **colcon** build tool - A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4 - The **int2DDS** core library available as a dependency ### Workspace setup ```bash mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src git clone https://github.com/IntellectusCorp/rmw_int2dds.git cd ~/ros2_ws rosdep install --from-paths src --ignore-src -r -y ``` ## Building and Testing ```bash # Build colcon build --packages-up-to rmw_int2dds_cpp # Run this package's tests colcon test --packages-select rmw_int2dds_cpp colcon test-result --verbose # Run the RMW interface conformance suite against int2DDS RMW_IMPLEMENTATION=rmw_int2dds_cpp \ colcon test --packages-select test_rmw_implementation ``` > Tier 3 listing requires the full `test_rmw_implementation` suite to pass. ## Code Style This package follows the ROS 2 [Code Style and Language Versions](https://docs.ros.org/en/jazzy/The-ROS2-Project/Contributing/Code-Style-Language-Versions.html) guide: - C++17, max line length 100, `.hpp`/`.cpp` extensions - Linters run as tests via `ament_lint_auto` + `ament_lint_common` (`ament_clang_format`, `ament_cpplint`, `ament_uncrustify`, `ament_cppcheck`) - Build with `-Wall -Wextra -Wpedantic` ```bash # Run linters colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint ``` ## Commit Messages Use the format `TYPE: short description` (max 72 chars), imperative mood. Types: `FEAT`, `FIX`, `DOCS`, `STYLE`, `REFACTOR`, `TEST`, `CHORE`, `PERF`. Reference issues with `Fixes #123`. ## Branch Naming `feature/`, `fix/`, `hotfix/`, `docs/`, `refactor/`, `test/` prefixes; lowercase with hyphens (e.g., `feature/qos-deadline`). ## Pull Request Process 1. Rebase on the latest `upstream/main`. 2. Ensure `colcon build` and `colcon test` pass, including linters. 3. Update documentation and `CHANGELOG.rst` if behavior or APIs changed. 4. Open a PR with a clear summary, rationale, and testing notes. 5. Request review from maintainers. ## Reporting Bugs Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow [SECURITY.md](SECURITY.md) instead. ## License By contributing, you agree your contributions are licensed under the [Apache License 2.0](LICENSE). ## License of contributions Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that File truncated at 100 lines [see the full file](https://github.com/IntellectusCorp/rmw_int2dds/tree/jazzy/CONTRIBUTING.md)
No version for distro kilted showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/IntellectusCorp/rmw_int2dds.git
VCS Type git
VCS Version humble
Last Updated 2026-10-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

ROS 2 RMW for int2DDS

A **ROS 2 RMW implementation** that binds the **int2DDS** DDS/RTPS middleware to the ROS 2 middleware (RMW) interface.

Overview

rmw_int2dds_cpp lets ROS 2 applications run on top of int2DDS, a Rust implementation of the OMG DDS standard (RTPS 2.5). It implements the ROS 2 rmw C interface so that any ROS 2 stack (rclcpp, rclpy, ros2 CLI, tools) can use int2DDS as its middleware via RMW_IMPLEMENTATION=rmw_int2dds_cpp.

Status: work in progress — APIs and test results are being stabilized ahead of a request for Tier 3 status in REP 2000.

Supported ROS 2 distributions

Distribution Status
Humble Hawksbill (LTS) Supported (verified)
Jazzy Jalisco (LTS) Supported (verified)
Lyrical Luth (LTS) Supported (verified, except cross-vendor WStrings - see Known issues)
Rolling Ridley Supported (verified, except cross-vendor WStrings - see Known issues)

Supported platforms

Platform amd64 arm64 arm32
Ubuntu 22.04 (Jammy) Verified Verified Verified
Windows 10 Verified (on Windows 11)    
RHEL 8 Verified    
Ubuntu 20.04 (Focal) Verified Verified Verified
macOS Verified    
Debian 11 (Bullseye) Verified Verified Verified
OpenEmbedded / Yocto Verified Verified Verified
  • Windows: verified on Windows 11 with Visual Studio 2019. See Windows and macOS.
  • macOS: verified on macOS 15.
  • OpenEmbedded / Yocto: verified with a local layer that adds the rmw_int2dds recipes. arm32 needs one change in meta-ros: in meta-ros2/classes/ros_ament_cmake.bbclass, replace inherit cmake python3native with inherit cmake python3targetconfig. Without it, the ROS 2 message packages fail with a LONG_BIT error before rmw_int2dds is reached (ros/meta-ros#1205, fix). Boards running an older kernel also need OLDEST_KERNEL set to that kernel (tested on NanoPi, kernel 4.14: OLDEST_KERNEL = "4.14").

Installation

From the ROS 2 apt repository

sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

apt install pulls in the int2dds_ffi_vendor package automatically. The RMW library and its ament-index marker install into /opt/ros/humble/, so once the environment is sourced only RMW_IMPLEMENTATION needs to be set.

Supported: humble / jazzy / lyrical / rolling × amd64 / arm64 (rolling: testing repository only).

From the ROS 2 RPM repository (RHEL)

With the ROS 2 RPM repository set up as in the ROS 2 RHEL installation guide:

sudo dnf install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

Latest version (testing repository or source build)

The newest release is available from the ROS 2 testing repository:

sudo apt install -y ros2-testing-apt-source
sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp

To build from source instead, follow Quick Start.

Windows and macOS

There are no binary packages of rmw_int2dds for Windows or macOS: build it from source on top of a ROS 2 installation made with the ROS 2 installation guide for that platform. int2dds_ffi_vendor downloads the FFI for the host from the int2DDS releases.

Windows, in an x64 Native Tools Command Prompt for VS 2019. The commands below assume ROS 2 Humble in C:\pixi_ws\ros2-windows; change the paths to match your installation. The ROS 2 Windows binaries are Release builds, so build rmw_int2dds as Release too:

```bat cd /d C:\pixi_ws pixi shell call C:\pixi_ws\ros2-windows\local_setup.bat

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to rmw_int2dds_cpp

Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the int2DDS repository.

Code of Conduct

This project adheres to a Code of Conduct.

Contributor License Agreement (CLA)

By submitting a pull request you agree to the project CLA (individual / corporate).

Development Environment

Prerequisites

  • A supported ROS 2 distribution (Humble or Jazzy) installed and sourced
  • colcon build tool
  • A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4
  • The int2DDS core library available as a dependency

Workspace setup

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/IntellectusCorp/rmw_int2dds.git
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y

Building and Testing

# Build
colcon build --packages-up-to rmw_int2dds_cpp

# Run this package's tests
colcon test --packages-select rmw_int2dds_cpp
colcon test-result --verbose

# Run the RMW interface conformance suite against int2DDS
RMW_IMPLEMENTATION=rmw_int2dds_cpp \
  colcon test --packages-select test_rmw_implementation

Tier 3 listing requires the full test_rmw_implementation suite to pass.

Code Style

This package follows the ROS 2 Code Style and Language Versions guide:

  • C++17, max line length 100, .hpp/.cpp extensions
  • Linters run as tests via ament_lint_auto + ament_lint_common (ament_clang_format, ament_cpplint, ament_uncrustify, ament_cppcheck)
  • Build with -Wall -Wextra -Wpedantic
# Run linters
colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint

Commit Messages

Use the format TYPE: short description (max 72 chars), imperative mood. Types: FEAT, FIX, DOCS, STYLE, REFACTOR, TEST, CHORE, PERF. Reference issues with Fixes #123.

Branch Naming

feature/, fix/, hotfix/, docs/, refactor/, test/ prefixes; lowercase with hyphens (e.g., feature/qos-deadline).

Pull Request Process

  1. Rebase on the latest upstream/main.
  2. Ensure colcon build and colcon test pass, including linters.
  3. Update documentation and CHANGELOG.rst if behavior or APIs changed.
  4. Open a PR with a clear summary, rationale, and testing notes.
  5. Request review from maintainers.

Reporting Bugs

Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow SECURITY.md instead.

License

By contributing, you agree your contributions are licensed under the Apache License 2.0.

License of contributions

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that

File truncated at 100 lines see the full file

# Contributing to rmw_int2dds_cpp Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the [int2DDS](https://github.com/IntellectusCorp/int2DDS) repository. ## Code of Conduct This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). ## Contributor License Agreement (CLA) By submitting a pull request you agree to the project CLA ([individual](CLA-Individual.md) / [corporate](CLA-Corporate.md)). ## Development Environment ### Prerequisites - A supported **ROS 2** distribution (Humble or Jazzy) installed and sourced - **colcon** build tool - A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4 - The **int2DDS** core library available as a dependency ### Workspace setup ```bash mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src git clone https://github.com/IntellectusCorp/rmw_int2dds.git cd ~/ros2_ws rosdep install --from-paths src --ignore-src -r -y ``` ## Building and Testing ```bash # Build colcon build --packages-up-to rmw_int2dds_cpp # Run this package's tests colcon test --packages-select rmw_int2dds_cpp colcon test-result --verbose # Run the RMW interface conformance suite against int2DDS RMW_IMPLEMENTATION=rmw_int2dds_cpp \ colcon test --packages-select test_rmw_implementation ``` > Tier 3 listing requires the full `test_rmw_implementation` suite to pass. ## Code Style This package follows the ROS 2 [Code Style and Language Versions](https://docs.ros.org/en/jazzy/The-ROS2-Project/Contributing/Code-Style-Language-Versions.html) guide: - C++17, max line length 100, `.hpp`/`.cpp` extensions - Linters run as tests via `ament_lint_auto` + `ament_lint_common` (`ament_clang_format`, `ament_cpplint`, `ament_uncrustify`, `ament_cppcheck`) - Build with `-Wall -Wextra -Wpedantic` ```bash # Run linters colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint ``` ## Commit Messages Use the format `TYPE: short description` (max 72 chars), imperative mood. Types: `FEAT`, `FIX`, `DOCS`, `STYLE`, `REFACTOR`, `TEST`, `CHORE`, `PERF`. Reference issues with `Fixes #123`. ## Branch Naming `feature/`, `fix/`, `hotfix/`, `docs/`, `refactor/`, `test/` prefixes; lowercase with hyphens (e.g., `feature/qos-deadline`). ## Pull Request Process 1. Rebase on the latest `upstream/main`. 2. Ensure `colcon build` and `colcon test` pass, including linters. 3. Update documentation and `CHANGELOG.rst` if behavior or APIs changed. 4. Open a PR with a clear summary, rationale, and testing notes. 5. Request review from maintainers. ## Reporting Bugs Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow [SECURITY.md](SECURITY.md) instead. ## License By contributing, you agree your contributions are licensed under the [Apache License 2.0](LICENSE). ## License of contributions Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that File truncated at 100 lines [see the full file](https://github.com/IntellectusCorp/rmw_int2dds/tree/humble/CONTRIBUTING.md)

Repository Summary

Description
Checkout URI https://github.com/IntellectusCorp/rmw_int2dds.git
VCS Type git
VCS Version lyrical
Last Updated 2026-10-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

ROS 2 RMW for int2DDS

A **ROS 2 RMW implementation** that binds the **int2DDS** DDS/RTPS middleware to the ROS 2 middleware (RMW) interface.

Overview

rmw_int2dds_cpp lets ROS 2 applications run on top of int2DDS, a Rust implementation of the OMG DDS standard (RTPS 2.5). It implements the ROS 2 rmw C interface so that any ROS 2 stack (rclcpp, rclpy, ros2 CLI, tools) can use int2DDS as its middleware via RMW_IMPLEMENTATION=rmw_int2dds_cpp.

Status: work in progress — APIs and test results are being stabilized ahead of a request for Tier 3 status in REP 2000.

Supported ROS 2 distributions

Distribution Status
Humble Hawksbill (LTS) Supported (verified)
Jazzy Jalisco (LTS) Supported (verified)
Lyrical Luth (LTS) Supported (verified, except cross-vendor WStrings - see Known issues)
Rolling Ridley Supported (verified, except cross-vendor WStrings - see Known issues)

Supported platforms

Platform amd64 arm64 arm32
Ubuntu 26.04 (Resolute) Verified Verified Verified
Ubuntu 24.04 (Noble) Verified Verified Verified
Windows 11 Verified    
RHEL 10 Verified    
macOS Verified    
Debian 13 (Trixie) Verified Verified Verified
OpenEmbedded / Yocto Verified Verified Verified
  • Windows: verified on Windows 11 with Visual Studio 2022. See Windows and macOS.
  • macOS: verified on macOS 15.
  • OpenEmbedded / Yocto: verified with a local layer that adds the rmw_int2dds recipes. arm32 needs one change in meta-ros: in meta-ros2/classes/ros_ament_cmake.bbclass, replace inherit cmake python3native with inherit cmake python3targetconfig. Without it, the ROS 2 message packages fail with a LONG_BIT error before rmw_int2dds is reached (ros/meta-ros#1205, fix). Boards running an older kernel also need OLDEST_KERNEL set to that kernel (tested on NanoPi, kernel 4.14: OLDEST_KERNEL = "4.14").

Installation

From the ROS 2 apt repository

sudo apt update
sudo apt install ros-lyrical-rmw-int2dds-cpp
source /opt/ros/lyrical/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

apt install pulls in the int2dds_ffi_vendor package automatically. The RMW library and its ament-index marker install into /opt/ros/lyrical/, so once the environment is sourced only RMW_IMPLEMENTATION needs to be set.

Supported: humble / jazzy / lyrical / rolling × amd64 / arm64 (rolling: testing repository only).

From the ROS 2 RPM repository (RHEL)

With the ROS 2 RPM repository set up as in the ROS 2 RHEL installation guide:

sudo dnf install ros-lyrical-rmw-int2dds-cpp
source /opt/ros/lyrical/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

Latest version (testing repository or source build)

The newest release is available from the ROS 2 testing repository:

sudo apt install -y ros2-testing-apt-source
sudo apt update
sudo apt install ros-lyrical-rmw-int2dds-cpp

To build from source instead, follow Quick Start.

Windows and macOS

There are no binary packages of rmw_int2dds for Windows or macOS: build it from source on top of a ROS 2 installation made with the ROS 2 installation guide for that platform. int2dds_ffi_vendor downloads the FFI for the host from the int2DDS releases.

Windows, in an x64 Native Tools Command Prompt for VS 2022, with ROS 2 Lyrical installed as in the ROS 2 Windows binary guide (C:\dev\lyrical). The ROS 2 Windows binaries are Release builds, so build rmw_int2dds as Release too:

```bat cd /d C:\dev\lyrical pixi shell call C:\dev\lyrical\local_setup.bat md C:\dev\ros2_ws\src

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to rmw_int2dds_cpp

Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the int2DDS repository.

Code of Conduct

This project adheres to a Code of Conduct.

Contributor License Agreement (CLA)

By submitting a pull request you agree to the project CLA (individual / corporate).

Development Environment

Prerequisites

  • A supported ROS 2 distribution (Humble or Jazzy) installed and sourced
  • colcon build tool
  • A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4
  • The int2DDS core library available as a dependency

Workspace setup

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/IntellectusCorp/rmw_int2dds.git
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y

Building and Testing

# Build
colcon build --packages-up-to rmw_int2dds_cpp

# Run this package's tests
colcon test --packages-select rmw_int2dds_cpp
colcon test-result --verbose

# Run the RMW interface conformance suite against int2DDS
RMW_IMPLEMENTATION=rmw_int2dds_cpp \
  colcon test --packages-select test_rmw_implementation

Tier 3 listing requires the full test_rmw_implementation suite to pass.

Code Style

This package follows the ROS 2 Code Style and Language Versions guide:

  • C++17, max line length 100, .hpp/.cpp extensions
  • Linters run as tests via ament_lint_auto + ament_lint_common (ament_clang_format, ament_cpplint, ament_uncrustify, ament_cppcheck)
  • Build with -Wall -Wextra -Wpedantic
# Run linters
colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint

Commit Messages

Use the format TYPE: short description (max 72 chars), imperative mood. Types: FEAT, FIX, DOCS, STYLE, REFACTOR, TEST, CHORE, PERF. Reference issues with Fixes #123.

Branch Naming

feature/, fix/, hotfix/, docs/, refactor/, test/ prefixes; lowercase with hyphens (e.g., feature/qos-deadline).

Pull Request Process

  1. Rebase on the latest upstream/main.
  2. Ensure colcon build and colcon test pass, including linters.
  3. Update documentation and CHANGELOG.rst if behavior or APIs changed.
  4. Open a PR with a clear summary, rationale, and testing notes.
  5. Request review from maintainers.

Reporting Bugs

Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow SECURITY.md instead.

License

By contributing, you agree your contributions are licensed under the Apache License 2.0.

License of contributions

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that

File truncated at 100 lines see the full file

# Contributing to rmw_int2dds_cpp Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the [int2DDS](https://github.com/IntellectusCorp/int2DDS) repository. ## Code of Conduct This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). ## Contributor License Agreement (CLA) By submitting a pull request you agree to the project CLA ([individual](CLA-Individual.md) / [corporate](CLA-Corporate.md)). ## Development Environment ### Prerequisites - A supported **ROS 2** distribution (Humble or Jazzy) installed and sourced - **colcon** build tool - A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4 - The **int2DDS** core library available as a dependency ### Workspace setup ```bash mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src git clone https://github.com/IntellectusCorp/rmw_int2dds.git cd ~/ros2_ws rosdep install --from-paths src --ignore-src -r -y ``` ## Building and Testing ```bash # Build colcon build --packages-up-to rmw_int2dds_cpp # Run this package's tests colcon test --packages-select rmw_int2dds_cpp colcon test-result --verbose # Run the RMW interface conformance suite against int2DDS RMW_IMPLEMENTATION=rmw_int2dds_cpp \ colcon test --packages-select test_rmw_implementation ``` > Tier 3 listing requires the full `test_rmw_implementation` suite to pass. ## Code Style This package follows the ROS 2 [Code Style and Language Versions](https://docs.ros.org/en/jazzy/The-ROS2-Project/Contributing/Code-Style-Language-Versions.html) guide: - C++17, max line length 100, `.hpp`/`.cpp` extensions - Linters run as tests via `ament_lint_auto` + `ament_lint_common` (`ament_clang_format`, `ament_cpplint`, `ament_uncrustify`, `ament_cppcheck`) - Build with `-Wall -Wextra -Wpedantic` ```bash # Run linters colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint ``` ## Commit Messages Use the format `TYPE: short description` (max 72 chars), imperative mood. Types: `FEAT`, `FIX`, `DOCS`, `STYLE`, `REFACTOR`, `TEST`, `CHORE`, `PERF`. Reference issues with `Fixes #123`. ## Branch Naming `feature/`, `fix/`, `hotfix/`, `docs/`, `refactor/`, `test/` prefixes; lowercase with hyphens (e.g., `feature/qos-deadline`). ## Pull Request Process 1. Rebase on the latest `upstream/main`. 2. Ensure `colcon build` and `colcon test` pass, including linters. 3. Update documentation and `CHANGELOG.rst` if behavior or APIs changed. 4. Open a PR with a clear summary, rationale, and testing notes. 5. Request review from maintainers. ## Reporting Bugs Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow [SECURITY.md](SECURITY.md) instead. ## License By contributing, you agree your contributions are licensed under the [Apache License 2.0](LICENSE). ## License of contributions Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that File truncated at 100 lines [see the full file](https://github.com/IntellectusCorp/rmw_int2dds/tree/lyrical/CONTRIBUTING.md)

Repository Summary

Description
Checkout URI https://github.com/IntellectusCorp/rmw_int2dds.git
VCS Type git
VCS Version rolling
Last Updated 2026-08-31
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

ROS 2 RMW for int2DDS

A **ROS 2 RMW implementation** that binds the **int2DDS** DDS/RTPS middleware to the ROS 2 middleware (RMW) interface.

Overview

rmw_int2dds_cpp lets ROS 2 applications run on top of int2DDS, a Rust implementation of the OMG DDS standard (RTPS 2.5). It implements the ROS 2 rmw C interface so that any ROS 2 stack (rclcpp, rclpy, ros2 CLI, tools) can use int2DDS as its middleware via RMW_IMPLEMENTATION=rmw_int2dds_cpp.

Status: work in progress — APIs and test results are being stabilized ahead of a request for Tier 3 status in REP 2000.

Supported ROS 2 distributions

Distribution Status
Humble Hawksbill (LTS) Supported (verified)
Jazzy Jalisco (LTS) Supported (verified)
Lyrical Luth (LTS) Supported (verified)
Rolling Ridley Supported (in-repo checks only - see Test status)

Supported platforms

Platform Architectures Status
Ubuntu (Linux) amd64 Supported (verified)
Ubuntu (Linux) arm64 Target (library builds; board validation pending)

Quick Start

# 1) Get the sources into your ROS 2 workspace
mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
# This repository carries every package you need: rmw_int2dds_cpp, its
# int2dds_ffi_vendor dependency, and the rmw_int2dds_validation probes.
git clone -b rolling https://github.com/IntellectusCorp/rmw_int2dds.git

# 2) Build
cd ~/ros2_ws
source /opt/ros/rolling/setup.bash
colcon build --packages-up-to rmw_int2dds_cpp
source install/setup.bash

# 3) Select int2DDS as the middleware
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

# 4) Run any ROS 2 demo
ros2 run demo_nodes_cpp talker
# in another terminal (same RMW_IMPLEMENTATION):
ros2 run demo_nodes_cpp listener

Middleware library dependency

This package links against the closed-source int2DDS FFI library (libint2dds_ffi.so* and int2dds-ffi.h), which is provided by the int2dds_ffi_vendor package. The vendor package downloads the release artifact, verifies the selected library against the manifest, and exports the int2dds_ffi::int2dds_ffi CMake target used by this RMW package.

Binary install (.deb)

Prebuilt packages let you skip colcon build. Download the two .debs for your distro + architecture from the Releases page, then:

sudo apt install ./ros-rolling-int2dds-ffi-vendor_*_amd64.deb \
                 ./ros-rolling-rmw-int2dds-cpp_*_amd64.deb
source /opt/ros/rolling/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp
ros2 run demo_nodes_cpp talker

apt install ./file.deb installs the file and resolves its dependencies (the rmw package pulls in the vendor package automatically). The RMW library and its ament-index marker install into /opt/ros/rolling/, so once the environment is sourced only RMW_IMPLEMENTATION needs to be set.

Supported: humble / jazzy / lyrical / rolling × amd64 / arm64. armhf is best-effort - there are no official ROS 2 armhf apt packages, so an armhf .deb only works on a system where ROS 2 was itself built from source for armhf.

To build the packages yourself: packaging/build-deb.sh <distro> <arch> (needs Docker; see packaging/ for the build and verification scripts).

Test status

All results below were produced by running the listed suites directly; see doc/ for methodology. Same-vendor and cross-vendor integration tests use the official ROS 2 repositories (rmw_implementation, system_tests).

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to rmw_int2dds_cpp

Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the int2DDS repository.

Code of Conduct

This project adheres to a Code of Conduct.

Contributor License Agreement (CLA)

By submitting a pull request you agree to the project CLA (individual / corporate).

Development Environment

Prerequisites

  • A supported ROS 2 distribution (Humble or Jazzy) installed and sourced
  • colcon build tool
  • A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4
  • The int2DDS core library available as a dependency

Workspace setup

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/IntellectusCorp/rmw_int2dds.git
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y

Building and Testing

# Build
colcon build --packages-up-to rmw_int2dds_cpp

# Run this package's tests
colcon test --packages-select rmw_int2dds_cpp
colcon test-result --verbose

# Run the RMW interface conformance suite against int2DDS
RMW_IMPLEMENTATION=rmw_int2dds_cpp \
  colcon test --packages-select test_rmw_implementation

Tier 3 listing requires the full test_rmw_implementation suite to pass.

Code Style

This package follows the ROS 2 Code Style and Language Versions guide:

  • C++17, max line length 100, .hpp/.cpp extensions
  • Linters run as tests via ament_lint_auto + ament_lint_common (ament_clang_format, ament_cpplint, ament_uncrustify, ament_cppcheck)
  • Build with -Wall -Wextra -Wpedantic
# Run linters
colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint

Commit Messages

Use the format TYPE: short description (max 72 chars), imperative mood. Types: FEAT, FIX, DOCS, STYLE, REFACTOR, TEST, CHORE, PERF. Reference issues with Fixes #123.

Branch Naming

feature/, fix/, hotfix/, docs/, refactor/, test/ prefixes; lowercase with hyphens (e.g., feature/qos-deadline).

Pull Request Process

  1. Rebase on the latest upstream/main.
  2. Ensure colcon build and colcon test pass, including linters.
  3. Update documentation and CHANGELOG.rst if behavior or APIs changed.
  4. Open a PR with a clear summary, rationale, and testing notes.
  5. Request review from maintainers.

Reporting Bugs

Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow SECURITY.md instead.

License

By contributing, you agree your contributions are licensed under the Apache License 2.0.

License of contributions

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that

File truncated at 100 lines see the full file

# Contributing to rmw_int2dds_cpp Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the [int2DDS](https://github.com/IntellectusCorp/int2DDS) repository. ## Code of Conduct This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). ## Contributor License Agreement (CLA) By submitting a pull request you agree to the project CLA ([individual](CLA-Individual.md) / [corporate](CLA-Corporate.md)). ## Development Environment ### Prerequisites - A supported **ROS 2** distribution (Humble or Jazzy) installed and sourced - **colcon** build tool - A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4 - The **int2DDS** core library available as a dependency ### Workspace setup ```bash mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src git clone https://github.com/IntellectusCorp/rmw_int2dds.git cd ~/ros2_ws rosdep install --from-paths src --ignore-src -r -y ``` ## Building and Testing ```bash # Build colcon build --packages-up-to rmw_int2dds_cpp # Run this package's tests colcon test --packages-select rmw_int2dds_cpp colcon test-result --verbose # Run the RMW interface conformance suite against int2DDS RMW_IMPLEMENTATION=rmw_int2dds_cpp \ colcon test --packages-select test_rmw_implementation ``` > Tier 3 listing requires the full `test_rmw_implementation` suite to pass. ## Code Style This package follows the ROS 2 [Code Style and Language Versions](https://docs.ros.org/en/jazzy/The-ROS2-Project/Contributing/Code-Style-Language-Versions.html) guide: - C++17, max line length 100, `.hpp`/`.cpp` extensions - Linters run as tests via `ament_lint_auto` + `ament_lint_common` (`ament_clang_format`, `ament_cpplint`, `ament_uncrustify`, `ament_cppcheck`) - Build with `-Wall -Wextra -Wpedantic` ```bash # Run linters colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint ``` ## Commit Messages Use the format `TYPE: short description` (max 72 chars), imperative mood. Types: `FEAT`, `FIX`, `DOCS`, `STYLE`, `REFACTOR`, `TEST`, `CHORE`, `PERF`. Reference issues with `Fixes #123`. ## Branch Naming `feature/`, `fix/`, `hotfix/`, `docs/`, `refactor/`, `test/` prefixes; lowercase with hyphens (e.g., `feature/qos-deadline`). ## Pull Request Process 1. Rebase on the latest `upstream/main`. 2. Ensure `colcon build` and `colcon test` pass, including linters. 3. Update documentation and `CHANGELOG.rst` if behavior or APIs changed. 4. Open a PR with a clear summary, rationale, and testing notes. 5. Request review from maintainers. ## Reporting Bugs Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow [SECURITY.md](SECURITY.md) instead. ## License By contributing, you agree your contributions are licensed under the [Apache License 2.0](LICENSE). ## License of contributions Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that File truncated at 100 lines [see the full file](https://github.com/IntellectusCorp/rmw_int2dds/tree/rolling/CONTRIBUTING.md)
No version for distro github showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/IntellectusCorp/rmw_int2dds.git
VCS Type git
VCS Version humble
Last Updated 2026-10-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

ROS 2 RMW for int2DDS

A **ROS 2 RMW implementation** that binds the **int2DDS** DDS/RTPS middleware to the ROS 2 middleware (RMW) interface.

Overview

rmw_int2dds_cpp lets ROS 2 applications run on top of int2DDS, a Rust implementation of the OMG DDS standard (RTPS 2.5). It implements the ROS 2 rmw C interface so that any ROS 2 stack (rclcpp, rclpy, ros2 CLI, tools) can use int2DDS as its middleware via RMW_IMPLEMENTATION=rmw_int2dds_cpp.

Status: work in progress — APIs and test results are being stabilized ahead of a request for Tier 3 status in REP 2000.

Supported ROS 2 distributions

Distribution Status
Humble Hawksbill (LTS) Supported (verified)
Jazzy Jalisco (LTS) Supported (verified)
Lyrical Luth (LTS) Supported (verified, except cross-vendor WStrings - see Known issues)
Rolling Ridley Supported (verified, except cross-vendor WStrings - see Known issues)

Supported platforms

Platform amd64 arm64 arm32
Ubuntu 22.04 (Jammy) Verified Verified Verified
Windows 10 Verified (on Windows 11)    
RHEL 8 Verified    
Ubuntu 20.04 (Focal) Verified Verified Verified
macOS Verified    
Debian 11 (Bullseye) Verified Verified Verified
OpenEmbedded / Yocto Verified Verified Verified
  • Windows: verified on Windows 11 with Visual Studio 2019. See Windows and macOS.
  • macOS: verified on macOS 15.
  • OpenEmbedded / Yocto: verified with a local layer that adds the rmw_int2dds recipes. arm32 needs one change in meta-ros: in meta-ros2/classes/ros_ament_cmake.bbclass, replace inherit cmake python3native with inherit cmake python3targetconfig. Without it, the ROS 2 message packages fail with a LONG_BIT error before rmw_int2dds is reached (ros/meta-ros#1205, fix). Boards running an older kernel also need OLDEST_KERNEL set to that kernel (tested on NanoPi, kernel 4.14: OLDEST_KERNEL = "4.14").

Installation

From the ROS 2 apt repository

sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

apt install pulls in the int2dds_ffi_vendor package automatically. The RMW library and its ament-index marker install into /opt/ros/humble/, so once the environment is sourced only RMW_IMPLEMENTATION needs to be set.

Supported: humble / jazzy / lyrical / rolling × amd64 / arm64 (rolling: testing repository only).

From the ROS 2 RPM repository (RHEL)

With the ROS 2 RPM repository set up as in the ROS 2 RHEL installation guide:

sudo dnf install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

Latest version (testing repository or source build)

The newest release is available from the ROS 2 testing repository:

sudo apt install -y ros2-testing-apt-source
sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp

To build from source instead, follow Quick Start.

Windows and macOS

There are no binary packages of rmw_int2dds for Windows or macOS: build it from source on top of a ROS 2 installation made with the ROS 2 installation guide for that platform. int2dds_ffi_vendor downloads the FFI for the host from the int2DDS releases.

Windows, in an x64 Native Tools Command Prompt for VS 2019. The commands below assume ROS 2 Humble in C:\pixi_ws\ros2-windows; change the paths to match your installation. The ROS 2 Windows binaries are Release builds, so build rmw_int2dds as Release too:

```bat cd /d C:\pixi_ws pixi shell call C:\pixi_ws\ros2-windows\local_setup.bat

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to rmw_int2dds_cpp

Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the int2DDS repository.

Code of Conduct

This project adheres to a Code of Conduct.

Contributor License Agreement (CLA)

By submitting a pull request you agree to the project CLA (individual / corporate).

Development Environment

Prerequisites

  • A supported ROS 2 distribution (Humble or Jazzy) installed and sourced
  • colcon build tool
  • A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4
  • The int2DDS core library available as a dependency

Workspace setup

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/IntellectusCorp/rmw_int2dds.git
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y

Building and Testing

# Build
colcon build --packages-up-to rmw_int2dds_cpp

# Run this package's tests
colcon test --packages-select rmw_int2dds_cpp
colcon test-result --verbose

# Run the RMW interface conformance suite against int2DDS
RMW_IMPLEMENTATION=rmw_int2dds_cpp \
  colcon test --packages-select test_rmw_implementation

Tier 3 listing requires the full test_rmw_implementation suite to pass.

Code Style

This package follows the ROS 2 Code Style and Language Versions guide:

  • C++17, max line length 100, .hpp/.cpp extensions
  • Linters run as tests via ament_lint_auto + ament_lint_common (ament_clang_format, ament_cpplint, ament_uncrustify, ament_cppcheck)
  • Build with -Wall -Wextra -Wpedantic
# Run linters
colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint

Commit Messages

Use the format TYPE: short description (max 72 chars), imperative mood. Types: FEAT, FIX, DOCS, STYLE, REFACTOR, TEST, CHORE, PERF. Reference issues with Fixes #123.

Branch Naming

feature/, fix/, hotfix/, docs/, refactor/, test/ prefixes; lowercase with hyphens (e.g., feature/qos-deadline).

Pull Request Process

  1. Rebase on the latest upstream/main.
  2. Ensure colcon build and colcon test pass, including linters.
  3. Update documentation and CHANGELOG.rst if behavior or APIs changed.
  4. Open a PR with a clear summary, rationale, and testing notes.
  5. Request review from maintainers.

Reporting Bugs

Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow SECURITY.md instead.

License

By contributing, you agree your contributions are licensed under the Apache License 2.0.

License of contributions

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that

File truncated at 100 lines see the full file

# Contributing to rmw_int2dds_cpp Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the [int2DDS](https://github.com/IntellectusCorp/int2DDS) repository. ## Code of Conduct This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). ## Contributor License Agreement (CLA) By submitting a pull request you agree to the project CLA ([individual](CLA-Individual.md) / [corporate](CLA-Corporate.md)). ## Development Environment ### Prerequisites - A supported **ROS 2** distribution (Humble or Jazzy) installed and sourced - **colcon** build tool - A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4 - The **int2DDS** core library available as a dependency ### Workspace setup ```bash mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src git clone https://github.com/IntellectusCorp/rmw_int2dds.git cd ~/ros2_ws rosdep install --from-paths src --ignore-src -r -y ``` ## Building and Testing ```bash # Build colcon build --packages-up-to rmw_int2dds_cpp # Run this package's tests colcon test --packages-select rmw_int2dds_cpp colcon test-result --verbose # Run the RMW interface conformance suite against int2DDS RMW_IMPLEMENTATION=rmw_int2dds_cpp \ colcon test --packages-select test_rmw_implementation ``` > Tier 3 listing requires the full `test_rmw_implementation` suite to pass. ## Code Style This package follows the ROS 2 [Code Style and Language Versions](https://docs.ros.org/en/jazzy/The-ROS2-Project/Contributing/Code-Style-Language-Versions.html) guide: - C++17, max line length 100, `.hpp`/`.cpp` extensions - Linters run as tests via `ament_lint_auto` + `ament_lint_common` (`ament_clang_format`, `ament_cpplint`, `ament_uncrustify`, `ament_cppcheck`) - Build with `-Wall -Wextra -Wpedantic` ```bash # Run linters colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint ``` ## Commit Messages Use the format `TYPE: short description` (max 72 chars), imperative mood. Types: `FEAT`, `FIX`, `DOCS`, `STYLE`, `REFACTOR`, `TEST`, `CHORE`, `PERF`. Reference issues with `Fixes #123`. ## Branch Naming `feature/`, `fix/`, `hotfix/`, `docs/`, `refactor/`, `test/` prefixes; lowercase with hyphens (e.g., `feature/qos-deadline`). ## Pull Request Process 1. Rebase on the latest `upstream/main`. 2. Ensure `colcon build` and `colcon test` pass, including linters. 3. Update documentation and `CHANGELOG.rst` if behavior or APIs changed. 4. Open a PR with a clear summary, rationale, and testing notes. 5. Request review from maintainers. ## Reporting Bugs Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow [SECURITY.md](SECURITY.md) instead. ## License By contributing, you agree your contributions are licensed under the [Apache License 2.0](LICENSE). ## License of contributions Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that File truncated at 100 lines [see the full file](https://github.com/IntellectusCorp/rmw_int2dds/tree/humble/CONTRIBUTING.md)
No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/IntellectusCorp/rmw_int2dds.git
VCS Type git
VCS Version humble
Last Updated 2026-10-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

ROS 2 RMW for int2DDS

A **ROS 2 RMW implementation** that binds the **int2DDS** DDS/RTPS middleware to the ROS 2 middleware (RMW) interface.

Overview

rmw_int2dds_cpp lets ROS 2 applications run on top of int2DDS, a Rust implementation of the OMG DDS standard (RTPS 2.5). It implements the ROS 2 rmw C interface so that any ROS 2 stack (rclcpp, rclpy, ros2 CLI, tools) can use int2DDS as its middleware via RMW_IMPLEMENTATION=rmw_int2dds_cpp.

Status: work in progress — APIs and test results are being stabilized ahead of a request for Tier 3 status in REP 2000.

Supported ROS 2 distributions

Distribution Status
Humble Hawksbill (LTS) Supported (verified)
Jazzy Jalisco (LTS) Supported (verified)
Lyrical Luth (LTS) Supported (verified, except cross-vendor WStrings - see Known issues)
Rolling Ridley Supported (verified, except cross-vendor WStrings - see Known issues)

Supported platforms

Platform amd64 arm64 arm32
Ubuntu 22.04 (Jammy) Verified Verified Verified
Windows 10 Verified (on Windows 11)    
RHEL 8 Verified    
Ubuntu 20.04 (Focal) Verified Verified Verified
macOS Verified    
Debian 11 (Bullseye) Verified Verified Verified
OpenEmbedded / Yocto Verified Verified Verified
  • Windows: verified on Windows 11 with Visual Studio 2019. See Windows and macOS.
  • macOS: verified on macOS 15.
  • OpenEmbedded / Yocto: verified with a local layer that adds the rmw_int2dds recipes. arm32 needs one change in meta-ros: in meta-ros2/classes/ros_ament_cmake.bbclass, replace inherit cmake python3native with inherit cmake python3targetconfig. Without it, the ROS 2 message packages fail with a LONG_BIT error before rmw_int2dds is reached (ros/meta-ros#1205, fix). Boards running an older kernel also need OLDEST_KERNEL set to that kernel (tested on NanoPi, kernel 4.14: OLDEST_KERNEL = "4.14").

Installation

From the ROS 2 apt repository

sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

apt install pulls in the int2dds_ffi_vendor package automatically. The RMW library and its ament-index marker install into /opt/ros/humble/, so once the environment is sourced only RMW_IMPLEMENTATION needs to be set.

Supported: humble / jazzy / lyrical / rolling × amd64 / arm64 (rolling: testing repository only).

From the ROS 2 RPM repository (RHEL)

With the ROS 2 RPM repository set up as in the ROS 2 RHEL installation guide:

sudo dnf install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

Latest version (testing repository or source build)

The newest release is available from the ROS 2 testing repository:

sudo apt install -y ros2-testing-apt-source
sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp

To build from source instead, follow Quick Start.

Windows and macOS

There are no binary packages of rmw_int2dds for Windows or macOS: build it from source on top of a ROS 2 installation made with the ROS 2 installation guide for that platform. int2dds_ffi_vendor downloads the FFI for the host from the int2DDS releases.

Windows, in an x64 Native Tools Command Prompt for VS 2019. The commands below assume ROS 2 Humble in C:\pixi_ws\ros2-windows; change the paths to match your installation. The ROS 2 Windows binaries are Release builds, so build rmw_int2dds as Release too:

```bat cd /d C:\pixi_ws pixi shell call C:\pixi_ws\ros2-windows\local_setup.bat

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to rmw_int2dds_cpp

Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the int2DDS repository.

Code of Conduct

This project adheres to a Code of Conduct.

Contributor License Agreement (CLA)

By submitting a pull request you agree to the project CLA (individual / corporate).

Development Environment

Prerequisites

  • A supported ROS 2 distribution (Humble or Jazzy) installed and sourced
  • colcon build tool
  • A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4
  • The int2DDS core library available as a dependency

Workspace setup

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/IntellectusCorp/rmw_int2dds.git
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y

Building and Testing

# Build
colcon build --packages-up-to rmw_int2dds_cpp

# Run this package's tests
colcon test --packages-select rmw_int2dds_cpp
colcon test-result --verbose

# Run the RMW interface conformance suite against int2DDS
RMW_IMPLEMENTATION=rmw_int2dds_cpp \
  colcon test --packages-select test_rmw_implementation

Tier 3 listing requires the full test_rmw_implementation suite to pass.

Code Style

This package follows the ROS 2 Code Style and Language Versions guide:

  • C++17, max line length 100, .hpp/.cpp extensions
  • Linters run as tests via ament_lint_auto + ament_lint_common (ament_clang_format, ament_cpplint, ament_uncrustify, ament_cppcheck)
  • Build with -Wall -Wextra -Wpedantic
# Run linters
colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint

Commit Messages

Use the format TYPE: short description (max 72 chars), imperative mood. Types: FEAT, FIX, DOCS, STYLE, REFACTOR, TEST, CHORE, PERF. Reference issues with Fixes #123.

Branch Naming

feature/, fix/, hotfix/, docs/, refactor/, test/ prefixes; lowercase with hyphens (e.g., feature/qos-deadline).

Pull Request Process

  1. Rebase on the latest upstream/main.
  2. Ensure colcon build and colcon test pass, including linters.
  3. Update documentation and CHANGELOG.rst if behavior or APIs changed.
  4. Open a PR with a clear summary, rationale, and testing notes.
  5. Request review from maintainers.

Reporting Bugs

Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow SECURITY.md instead.

License

By contributing, you agree your contributions are licensed under the Apache License 2.0.

License of contributions

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that

File truncated at 100 lines see the full file

# Contributing to rmw_int2dds_cpp Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the [int2DDS](https://github.com/IntellectusCorp/int2DDS) repository. ## Code of Conduct This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). ## Contributor License Agreement (CLA) By submitting a pull request you agree to the project CLA ([individual](CLA-Individual.md) / [corporate](CLA-Corporate.md)). ## Development Environment ### Prerequisites - A supported **ROS 2** distribution (Humble or Jazzy) installed and sourced - **colcon** build tool - A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4 - The **int2DDS** core library available as a dependency ### Workspace setup ```bash mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src git clone https://github.com/IntellectusCorp/rmw_int2dds.git cd ~/ros2_ws rosdep install --from-paths src --ignore-src -r -y ``` ## Building and Testing ```bash # Build colcon build --packages-up-to rmw_int2dds_cpp # Run this package's tests colcon test --packages-select rmw_int2dds_cpp colcon test-result --verbose # Run the RMW interface conformance suite against int2DDS RMW_IMPLEMENTATION=rmw_int2dds_cpp \ colcon test --packages-select test_rmw_implementation ``` > Tier 3 listing requires the full `test_rmw_implementation` suite to pass. ## Code Style This package follows the ROS 2 [Code Style and Language Versions](https://docs.ros.org/en/jazzy/The-ROS2-Project/Contributing/Code-Style-Language-Versions.html) guide: - C++17, max line length 100, `.hpp`/`.cpp` extensions - Linters run as tests via `ament_lint_auto` + `ament_lint_common` (`ament_clang_format`, `ament_cpplint`, `ament_uncrustify`, `ament_cppcheck`) - Build with `-Wall -Wextra -Wpedantic` ```bash # Run linters colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint ``` ## Commit Messages Use the format `TYPE: short description` (max 72 chars), imperative mood. Types: `FEAT`, `FIX`, `DOCS`, `STYLE`, `REFACTOR`, `TEST`, `CHORE`, `PERF`. Reference issues with `Fixes #123`. ## Branch Naming `feature/`, `fix/`, `hotfix/`, `docs/`, `refactor/`, `test/` prefixes; lowercase with hyphens (e.g., `feature/qos-deadline`). ## Pull Request Process 1. Rebase on the latest `upstream/main`. 2. Ensure `colcon build` and `colcon test` pass, including linters. 3. Update documentation and `CHANGELOG.rst` if behavior or APIs changed. 4. Open a PR with a clear summary, rationale, and testing notes. 5. Request review from maintainers. ## Reporting Bugs Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow [SECURITY.md](SECURITY.md) instead. ## License By contributing, you agree your contributions are licensed under the [Apache License 2.0](LICENSE). ## License of contributions Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that File truncated at 100 lines [see the full file](https://github.com/IntellectusCorp/rmw_int2dds/tree/humble/CONTRIBUTING.md)
No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/IntellectusCorp/rmw_int2dds.git
VCS Type git
VCS Version humble
Last Updated 2026-10-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

ROS 2 RMW for int2DDS

A **ROS 2 RMW implementation** that binds the **int2DDS** DDS/RTPS middleware to the ROS 2 middleware (RMW) interface.

Overview

rmw_int2dds_cpp lets ROS 2 applications run on top of int2DDS, a Rust implementation of the OMG DDS standard (RTPS 2.5). It implements the ROS 2 rmw C interface so that any ROS 2 stack (rclcpp, rclpy, ros2 CLI, tools) can use int2DDS as its middleware via RMW_IMPLEMENTATION=rmw_int2dds_cpp.

Status: work in progress — APIs and test results are being stabilized ahead of a request for Tier 3 status in REP 2000.

Supported ROS 2 distributions

Distribution Status
Humble Hawksbill (LTS) Supported (verified)
Jazzy Jalisco (LTS) Supported (verified)
Lyrical Luth (LTS) Supported (verified, except cross-vendor WStrings - see Known issues)
Rolling Ridley Supported (verified, except cross-vendor WStrings - see Known issues)

Supported platforms

Platform amd64 arm64 arm32
Ubuntu 22.04 (Jammy) Verified Verified Verified
Windows 10 Verified (on Windows 11)    
RHEL 8 Verified    
Ubuntu 20.04 (Focal) Verified Verified Verified
macOS Verified    
Debian 11 (Bullseye) Verified Verified Verified
OpenEmbedded / Yocto Verified Verified Verified
  • Windows: verified on Windows 11 with Visual Studio 2019. See Windows and macOS.
  • macOS: verified on macOS 15.
  • OpenEmbedded / Yocto: verified with a local layer that adds the rmw_int2dds recipes. arm32 needs one change in meta-ros: in meta-ros2/classes/ros_ament_cmake.bbclass, replace inherit cmake python3native with inherit cmake python3targetconfig. Without it, the ROS 2 message packages fail with a LONG_BIT error before rmw_int2dds is reached (ros/meta-ros#1205, fix). Boards running an older kernel also need OLDEST_KERNEL set to that kernel (tested on NanoPi, kernel 4.14: OLDEST_KERNEL = "4.14").

Installation

From the ROS 2 apt repository

sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

apt install pulls in the int2dds_ffi_vendor package automatically. The RMW library and its ament-index marker install into /opt/ros/humble/, so once the environment is sourced only RMW_IMPLEMENTATION needs to be set.

Supported: humble / jazzy / lyrical / rolling × amd64 / arm64 (rolling: testing repository only).

From the ROS 2 RPM repository (RHEL)

With the ROS 2 RPM repository set up as in the ROS 2 RHEL installation guide:

sudo dnf install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

Latest version (testing repository or source build)

The newest release is available from the ROS 2 testing repository:

sudo apt install -y ros2-testing-apt-source
sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp

To build from source instead, follow Quick Start.

Windows and macOS

There are no binary packages of rmw_int2dds for Windows or macOS: build it from source on top of a ROS 2 installation made with the ROS 2 installation guide for that platform. int2dds_ffi_vendor downloads the FFI for the host from the int2DDS releases.

Windows, in an x64 Native Tools Command Prompt for VS 2019. The commands below assume ROS 2 Humble in C:\pixi_ws\ros2-windows; change the paths to match your installation. The ROS 2 Windows binaries are Release builds, so build rmw_int2dds as Release too:

```bat cd /d C:\pixi_ws pixi shell call C:\pixi_ws\ros2-windows\local_setup.bat

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to rmw_int2dds_cpp

Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the int2DDS repository.

Code of Conduct

This project adheres to a Code of Conduct.

Contributor License Agreement (CLA)

By submitting a pull request you agree to the project CLA (individual / corporate).

Development Environment

Prerequisites

  • A supported ROS 2 distribution (Humble or Jazzy) installed and sourced
  • colcon build tool
  • A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4
  • The int2DDS core library available as a dependency

Workspace setup

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/IntellectusCorp/rmw_int2dds.git
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y

Building and Testing

# Build
colcon build --packages-up-to rmw_int2dds_cpp

# Run this package's tests
colcon test --packages-select rmw_int2dds_cpp
colcon test-result --verbose

# Run the RMW interface conformance suite against int2DDS
RMW_IMPLEMENTATION=rmw_int2dds_cpp \
  colcon test --packages-select test_rmw_implementation

Tier 3 listing requires the full test_rmw_implementation suite to pass.

Code Style

This package follows the ROS 2 Code Style and Language Versions guide:

  • C++17, max line length 100, .hpp/.cpp extensions
  • Linters run as tests via ament_lint_auto + ament_lint_common (ament_clang_format, ament_cpplint, ament_uncrustify, ament_cppcheck)
  • Build with -Wall -Wextra -Wpedantic
# Run linters
colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint

Commit Messages

Use the format TYPE: short description (max 72 chars), imperative mood. Types: FEAT, FIX, DOCS, STYLE, REFACTOR, TEST, CHORE, PERF. Reference issues with Fixes #123.

Branch Naming

feature/, fix/, hotfix/, docs/, refactor/, test/ prefixes; lowercase with hyphens (e.g., feature/qos-deadline).

Pull Request Process

  1. Rebase on the latest upstream/main.
  2. Ensure colcon build and colcon test pass, including linters.
  3. Update documentation and CHANGELOG.rst if behavior or APIs changed.
  4. Open a PR with a clear summary, rationale, and testing notes.
  5. Request review from maintainers.

Reporting Bugs

Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow SECURITY.md instead.

License

By contributing, you agree your contributions are licensed under the Apache License 2.0.

License of contributions

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that

File truncated at 100 lines see the full file

# Contributing to rmw_int2dds_cpp Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the [int2DDS](https://github.com/IntellectusCorp/int2DDS) repository. ## Code of Conduct This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). ## Contributor License Agreement (CLA) By submitting a pull request you agree to the project CLA ([individual](CLA-Individual.md) / [corporate](CLA-Corporate.md)). ## Development Environment ### Prerequisites - A supported **ROS 2** distribution (Humble or Jazzy) installed and sourced - **colcon** build tool - A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4 - The **int2DDS** core library available as a dependency ### Workspace setup ```bash mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src git clone https://github.com/IntellectusCorp/rmw_int2dds.git cd ~/ros2_ws rosdep install --from-paths src --ignore-src -r -y ``` ## Building and Testing ```bash # Build colcon build --packages-up-to rmw_int2dds_cpp # Run this package's tests colcon test --packages-select rmw_int2dds_cpp colcon test-result --verbose # Run the RMW interface conformance suite against int2DDS RMW_IMPLEMENTATION=rmw_int2dds_cpp \ colcon test --packages-select test_rmw_implementation ``` > Tier 3 listing requires the full `test_rmw_implementation` suite to pass. ## Code Style This package follows the ROS 2 [Code Style and Language Versions](https://docs.ros.org/en/jazzy/The-ROS2-Project/Contributing/Code-Style-Language-Versions.html) guide: - C++17, max line length 100, `.hpp`/`.cpp` extensions - Linters run as tests via `ament_lint_auto` + `ament_lint_common` (`ament_clang_format`, `ament_cpplint`, `ament_uncrustify`, `ament_cppcheck`) - Build with `-Wall -Wextra -Wpedantic` ```bash # Run linters colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint ``` ## Commit Messages Use the format `TYPE: short description` (max 72 chars), imperative mood. Types: `FEAT`, `FIX`, `DOCS`, `STYLE`, `REFACTOR`, `TEST`, `CHORE`, `PERF`. Reference issues with `Fixes #123`. ## Branch Naming `feature/`, `fix/`, `hotfix/`, `docs/`, `refactor/`, `test/` prefixes; lowercase with hyphens (e.g., `feature/qos-deadline`). ## Pull Request Process 1. Rebase on the latest `upstream/main`. 2. Ensure `colcon build` and `colcon test` pass, including linters. 3. Update documentation and `CHANGELOG.rst` if behavior or APIs changed. 4. Open a PR with a clear summary, rationale, and testing notes. 5. Request review from maintainers. ## Reporting Bugs Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow [SECURITY.md](SECURITY.md) instead. ## License By contributing, you agree your contributions are licensed under the [Apache License 2.0](LICENSE). ## License of contributions Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that File truncated at 100 lines [see the full file](https://github.com/IntellectusCorp/rmw_int2dds/tree/humble/CONTRIBUTING.md)
No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/IntellectusCorp/rmw_int2dds.git
VCS Type git
VCS Version humble
Last Updated 2026-10-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

ROS 2 RMW for int2DDS

A **ROS 2 RMW implementation** that binds the **int2DDS** DDS/RTPS middleware to the ROS 2 middleware (RMW) interface.

Overview

rmw_int2dds_cpp lets ROS 2 applications run on top of int2DDS, a Rust implementation of the OMG DDS standard (RTPS 2.5). It implements the ROS 2 rmw C interface so that any ROS 2 stack (rclcpp, rclpy, ros2 CLI, tools) can use int2DDS as its middleware via RMW_IMPLEMENTATION=rmw_int2dds_cpp.

Status: work in progress — APIs and test results are being stabilized ahead of a request for Tier 3 status in REP 2000.

Supported ROS 2 distributions

Distribution Status
Humble Hawksbill (LTS) Supported (verified)
Jazzy Jalisco (LTS) Supported (verified)
Lyrical Luth (LTS) Supported (verified, except cross-vendor WStrings - see Known issues)
Rolling Ridley Supported (verified, except cross-vendor WStrings - see Known issues)

Supported platforms

Platform amd64 arm64 arm32
Ubuntu 22.04 (Jammy) Verified Verified Verified
Windows 10 Verified (on Windows 11)    
RHEL 8 Verified    
Ubuntu 20.04 (Focal) Verified Verified Verified
macOS Verified    
Debian 11 (Bullseye) Verified Verified Verified
OpenEmbedded / Yocto Verified Verified Verified
  • Windows: verified on Windows 11 with Visual Studio 2019. See Windows and macOS.
  • macOS: verified on macOS 15.
  • OpenEmbedded / Yocto: verified with a local layer that adds the rmw_int2dds recipes. arm32 needs one change in meta-ros: in meta-ros2/classes/ros_ament_cmake.bbclass, replace inherit cmake python3native with inherit cmake python3targetconfig. Without it, the ROS 2 message packages fail with a LONG_BIT error before rmw_int2dds is reached (ros/meta-ros#1205, fix). Boards running an older kernel also need OLDEST_KERNEL set to that kernel (tested on NanoPi, kernel 4.14: OLDEST_KERNEL = "4.14").

Installation

From the ROS 2 apt repository

sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

apt install pulls in the int2dds_ffi_vendor package automatically. The RMW library and its ament-index marker install into /opt/ros/humble/, so once the environment is sourced only RMW_IMPLEMENTATION needs to be set.

Supported: humble / jazzy / lyrical / rolling × amd64 / arm64 (rolling: testing repository only).

From the ROS 2 RPM repository (RHEL)

With the ROS 2 RPM repository set up as in the ROS 2 RHEL installation guide:

sudo dnf install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

Latest version (testing repository or source build)

The newest release is available from the ROS 2 testing repository:

sudo apt install -y ros2-testing-apt-source
sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp

To build from source instead, follow Quick Start.

Windows and macOS

There are no binary packages of rmw_int2dds for Windows or macOS: build it from source on top of a ROS 2 installation made with the ROS 2 installation guide for that platform. int2dds_ffi_vendor downloads the FFI for the host from the int2DDS releases.

Windows, in an x64 Native Tools Command Prompt for VS 2019. The commands below assume ROS 2 Humble in C:\pixi_ws\ros2-windows; change the paths to match your installation. The ROS 2 Windows binaries are Release builds, so build rmw_int2dds as Release too:

```bat cd /d C:\pixi_ws pixi shell call C:\pixi_ws\ros2-windows\local_setup.bat

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to rmw_int2dds_cpp

Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the int2DDS repository.

Code of Conduct

This project adheres to a Code of Conduct.

Contributor License Agreement (CLA)

By submitting a pull request you agree to the project CLA (individual / corporate).

Development Environment

Prerequisites

  • A supported ROS 2 distribution (Humble or Jazzy) installed and sourced
  • colcon build tool
  • A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4
  • The int2DDS core library available as a dependency

Workspace setup

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/IntellectusCorp/rmw_int2dds.git
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y

Building and Testing

# Build
colcon build --packages-up-to rmw_int2dds_cpp

# Run this package's tests
colcon test --packages-select rmw_int2dds_cpp
colcon test-result --verbose

# Run the RMW interface conformance suite against int2DDS
RMW_IMPLEMENTATION=rmw_int2dds_cpp \
  colcon test --packages-select test_rmw_implementation

Tier 3 listing requires the full test_rmw_implementation suite to pass.

Code Style

This package follows the ROS 2 Code Style and Language Versions guide:

  • C++17, max line length 100, .hpp/.cpp extensions
  • Linters run as tests via ament_lint_auto + ament_lint_common (ament_clang_format, ament_cpplint, ament_uncrustify, ament_cppcheck)
  • Build with -Wall -Wextra -Wpedantic
# Run linters
colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint

Commit Messages

Use the format TYPE: short description (max 72 chars), imperative mood. Types: FEAT, FIX, DOCS, STYLE, REFACTOR, TEST, CHORE, PERF. Reference issues with Fixes #123.

Branch Naming

feature/, fix/, hotfix/, docs/, refactor/, test/ prefixes; lowercase with hyphens (e.g., feature/qos-deadline).

Pull Request Process

  1. Rebase on the latest upstream/main.
  2. Ensure colcon build and colcon test pass, including linters.
  3. Update documentation and CHANGELOG.rst if behavior or APIs changed.
  4. Open a PR with a clear summary, rationale, and testing notes.
  5. Request review from maintainers.

Reporting Bugs

Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow SECURITY.md instead.

License

By contributing, you agree your contributions are licensed under the Apache License 2.0.

License of contributions

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that

File truncated at 100 lines see the full file

# Contributing to rmw_int2dds_cpp Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the [int2DDS](https://github.com/IntellectusCorp/int2DDS) repository. ## Code of Conduct This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). ## Contributor License Agreement (CLA) By submitting a pull request you agree to the project CLA ([individual](CLA-Individual.md) / [corporate](CLA-Corporate.md)). ## Development Environment ### Prerequisites - A supported **ROS 2** distribution (Humble or Jazzy) installed and sourced - **colcon** build tool - A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4 - The **int2DDS** core library available as a dependency ### Workspace setup ```bash mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src git clone https://github.com/IntellectusCorp/rmw_int2dds.git cd ~/ros2_ws rosdep install --from-paths src --ignore-src -r -y ``` ## Building and Testing ```bash # Build colcon build --packages-up-to rmw_int2dds_cpp # Run this package's tests colcon test --packages-select rmw_int2dds_cpp colcon test-result --verbose # Run the RMW interface conformance suite against int2DDS RMW_IMPLEMENTATION=rmw_int2dds_cpp \ colcon test --packages-select test_rmw_implementation ``` > Tier 3 listing requires the full `test_rmw_implementation` suite to pass. ## Code Style This package follows the ROS 2 [Code Style and Language Versions](https://docs.ros.org/en/jazzy/The-ROS2-Project/Contributing/Code-Style-Language-Versions.html) guide: - C++17, max line length 100, `.hpp`/`.cpp` extensions - Linters run as tests via `ament_lint_auto` + `ament_lint_common` (`ament_clang_format`, `ament_cpplint`, `ament_uncrustify`, `ament_cppcheck`) - Build with `-Wall -Wextra -Wpedantic` ```bash # Run linters colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint ``` ## Commit Messages Use the format `TYPE: short description` (max 72 chars), imperative mood. Types: `FEAT`, `FIX`, `DOCS`, `STYLE`, `REFACTOR`, `TEST`, `CHORE`, `PERF`. Reference issues with `Fixes #123`. ## Branch Naming `feature/`, `fix/`, `hotfix/`, `docs/`, `refactor/`, `test/` prefixes; lowercase with hyphens (e.g., `feature/qos-deadline`). ## Pull Request Process 1. Rebase on the latest `upstream/main`. 2. Ensure `colcon build` and `colcon test` pass, including linters. 3. Update documentation and `CHANGELOG.rst` if behavior or APIs changed. 4. Open a PR with a clear summary, rationale, and testing notes. 5. Request review from maintainers. ## Reporting Bugs Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow [SECURITY.md](SECURITY.md) instead. ## License By contributing, you agree your contributions are licensed under the [Apache License 2.0](LICENSE). ## License of contributions Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that File truncated at 100 lines [see the full file](https://github.com/IntellectusCorp/rmw_int2dds/tree/humble/CONTRIBUTING.md)
No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/IntellectusCorp/rmw_int2dds.git
VCS Type git
VCS Version humble
Last Updated 2026-10-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

ROS 2 RMW for int2DDS

A **ROS 2 RMW implementation** that binds the **int2DDS** DDS/RTPS middleware to the ROS 2 middleware (RMW) interface.

Overview

rmw_int2dds_cpp lets ROS 2 applications run on top of int2DDS, a Rust implementation of the OMG DDS standard (RTPS 2.5). It implements the ROS 2 rmw C interface so that any ROS 2 stack (rclcpp, rclpy, ros2 CLI, tools) can use int2DDS as its middleware via RMW_IMPLEMENTATION=rmw_int2dds_cpp.

Status: work in progress — APIs and test results are being stabilized ahead of a request for Tier 3 status in REP 2000.

Supported ROS 2 distributions

Distribution Status
Humble Hawksbill (LTS) Supported (verified)
Jazzy Jalisco (LTS) Supported (verified)
Lyrical Luth (LTS) Supported (verified, except cross-vendor WStrings - see Known issues)
Rolling Ridley Supported (verified, except cross-vendor WStrings - see Known issues)

Supported platforms

Platform amd64 arm64 arm32
Ubuntu 22.04 (Jammy) Verified Verified Verified
Windows 10 Verified (on Windows 11)    
RHEL 8 Verified    
Ubuntu 20.04 (Focal) Verified Verified Verified
macOS Verified    
Debian 11 (Bullseye) Verified Verified Verified
OpenEmbedded / Yocto Verified Verified Verified
  • Windows: verified on Windows 11 with Visual Studio 2019. See Windows and macOS.
  • macOS: verified on macOS 15.
  • OpenEmbedded / Yocto: verified with a local layer that adds the rmw_int2dds recipes. arm32 needs one change in meta-ros: in meta-ros2/classes/ros_ament_cmake.bbclass, replace inherit cmake python3native with inherit cmake python3targetconfig. Without it, the ROS 2 message packages fail with a LONG_BIT error before rmw_int2dds is reached (ros/meta-ros#1205, fix). Boards running an older kernel also need OLDEST_KERNEL set to that kernel (tested on NanoPi, kernel 4.14: OLDEST_KERNEL = "4.14").

Installation

From the ROS 2 apt repository

sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

apt install pulls in the int2dds_ffi_vendor package automatically. The RMW library and its ament-index marker install into /opt/ros/humble/, so once the environment is sourced only RMW_IMPLEMENTATION needs to be set.

Supported: humble / jazzy / lyrical / rolling × amd64 / arm64 (rolling: testing repository only).

From the ROS 2 RPM repository (RHEL)

With the ROS 2 RPM repository set up as in the ROS 2 RHEL installation guide:

sudo dnf install ros-humble-rmw-int2dds-cpp
source /opt/ros/humble/setup.bash
export RMW_IMPLEMENTATION=rmw_int2dds_cpp

Latest version (testing repository or source build)

The newest release is available from the ROS 2 testing repository:

sudo apt install -y ros2-testing-apt-source
sudo apt update
sudo apt install ros-humble-rmw-int2dds-cpp

To build from source instead, follow Quick Start.

Windows and macOS

There are no binary packages of rmw_int2dds for Windows or macOS: build it from source on top of a ROS 2 installation made with the ROS 2 installation guide for that platform. int2dds_ffi_vendor downloads the FFI for the host from the int2DDS releases.

Windows, in an x64 Native Tools Command Prompt for VS 2019. The commands below assume ROS 2 Humble in C:\pixi_ws\ros2-windows; change the paths to match your installation. The ROS 2 Windows binaries are Release builds, so build rmw_int2dds as Release too:

```bat cd /d C:\pixi_ws pixi shell call C:\pixi_ws\ros2-windows\local_setup.bat

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to rmw_int2dds_cpp

Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the int2DDS repository.

Code of Conduct

This project adheres to a Code of Conduct.

Contributor License Agreement (CLA)

By submitting a pull request you agree to the project CLA (individual / corporate).

Development Environment

Prerequisites

  • A supported ROS 2 distribution (Humble or Jazzy) installed and sourced
  • colcon build tool
  • A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4
  • The int2DDS core library available as a dependency

Workspace setup

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/IntellectusCorp/rmw_int2dds.git
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y

Building and Testing

# Build
colcon build --packages-up-to rmw_int2dds_cpp

# Run this package's tests
colcon test --packages-select rmw_int2dds_cpp
colcon test-result --verbose

# Run the RMW interface conformance suite against int2DDS
RMW_IMPLEMENTATION=rmw_int2dds_cpp \
  colcon test --packages-select test_rmw_implementation

Tier 3 listing requires the full test_rmw_implementation suite to pass.

Code Style

This package follows the ROS 2 Code Style and Language Versions guide:

  • C++17, max line length 100, .hpp/.cpp extensions
  • Linters run as tests via ament_lint_auto + ament_lint_common (ament_clang_format, ament_cpplint, ament_uncrustify, ament_cppcheck)
  • Build with -Wall -Wextra -Wpedantic
# Run linters
colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint

Commit Messages

Use the format TYPE: short description (max 72 chars), imperative mood. Types: FEAT, FIX, DOCS, STYLE, REFACTOR, TEST, CHORE, PERF. Reference issues with Fixes #123.

Branch Naming

feature/, fix/, hotfix/, docs/, refactor/, test/ prefixes; lowercase with hyphens (e.g., feature/qos-deadline).

Pull Request Process

  1. Rebase on the latest upstream/main.
  2. Ensure colcon build and colcon test pass, including linters.
  3. Update documentation and CHANGELOG.rst if behavior or APIs changed.
  4. Open a PR with a clear summary, rationale, and testing notes.
  5. Request review from maintainers.

Reporting Bugs

Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow SECURITY.md instead.

License

By contributing, you agree your contributions are licensed under the Apache License 2.0.

License of contributions

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that

File truncated at 100 lines see the full file

# Contributing to rmw_int2dds_cpp Thank you for your interest in contributing! This package is the ROS 2 RMW binding for int2DDS. For contributions to the underlying DDS core, see the [int2DDS](https://github.com/IntellectusCorp/int2DDS) repository. ## Code of Conduct This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). ## Contributor License Agreement (CLA) By submitting a pull request you agree to the project CLA ([individual](CLA-Individual.md) / [corporate](CLA-Corporate.md)). ## Development Environment ### Prerequisites - A supported **ROS 2** distribution (Humble or Jazzy) installed and sourced - **colcon** build tool - A C++17 compiler (GCC/Clang/MSVC), CMake >= 3.14.4 - The **int2DDS** core library available as a dependency ### Workspace setup ```bash mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src git clone https://github.com/IntellectusCorp/rmw_int2dds.git cd ~/ros2_ws rosdep install --from-paths src --ignore-src -r -y ``` ## Building and Testing ```bash # Build colcon build --packages-up-to rmw_int2dds_cpp # Run this package's tests colcon test --packages-select rmw_int2dds_cpp colcon test-result --verbose # Run the RMW interface conformance suite against int2DDS RMW_IMPLEMENTATION=rmw_int2dds_cpp \ colcon test --packages-select test_rmw_implementation ``` > Tier 3 listing requires the full `test_rmw_implementation` suite to pass. ## Code Style This package follows the ROS 2 [Code Style and Language Versions](https://docs.ros.org/en/jazzy/The-ROS2-Project/Contributing/Code-Style-Language-Versions.html) guide: - C++17, max line length 100, `.hpp`/`.cpp` extensions - Linters run as tests via `ament_lint_auto` + `ament_lint_common` (`ament_clang_format`, `ament_cpplint`, `ament_uncrustify`, `ament_cppcheck`) - Build with `-Wall -Wextra -Wpedantic` ```bash # Run linters colcon test --packages-select rmw_int2dds_cpp --ctest-args -R lint ``` ## Commit Messages Use the format `TYPE: short description` (max 72 chars), imperative mood. Types: `FEAT`, `FIX`, `DOCS`, `STYLE`, `REFACTOR`, `TEST`, `CHORE`, `PERF`. Reference issues with `Fixes #123`. ## Branch Naming `feature/`, `fix/`, `hotfix/`, `docs/`, `refactor/`, `test/` prefixes; lowercase with hyphens (e.g., `feature/qos-deadline`). ## Pull Request Process 1. Rebase on the latest `upstream/main`. 2. Ensure `colcon build` and `colcon test` pass, including linters. 3. Update documentation and `CHANGELOG.rst` if behavior or APIs changed. 4. Open a PR with a clear summary, rationale, and testing notes. 5. Request review from maintainers. ## Reporting Bugs Open a GitHub issue with: description, reproduction steps, expected vs actual behavior, environment (OS, ROS 2 distro, int2DDS version), and logs. For security issues, follow [SECURITY.md](SECURITY.md) instead. ## License By contributing, you agree your contributions are licensed under the [Apache License 2.0](LICENSE). ## License of contributions Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that File truncated at 100 lines [see the full file](https://github.com/IntellectusCorp/rmw_int2dds/tree/humble/CONTRIBUTING.md)