{"id":20099092,"url":"https://github.com/ros2/rmw_connextdds","last_synced_at":"2025-04-06T10:13:21.163Z","repository":{"id":40253726,"uuid":"305517429","full_name":"ros2/rmw_connextdds","owner":"ros2","description":"ROS 2 RMW layer for RTI Connext DDS Professional and RTI Connext DDS Micro.","archived":false,"fork":false,"pushed_at":"2025-04-04T19:23:09.000Z","size":1701,"stargazers_count":52,"open_issues_count":28,"forks_count":34,"subscribers_count":24,"default_branch":"rolling","last_synced_at":"2025-04-04T20:28:21.619Z","etag":null,"topics":["rmw","ros","rti-connext-dds"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ros2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-19T21:28:35.000Z","updated_at":"2025-04-04T04:38:44.000Z","dependencies_parsed_at":"2023-09-29T15:22:46.059Z","dependency_job_id":"c0ccdf06-eb89-4ba7-b0b0-3860f372dcbf","html_url":"https://github.com/ros2/rmw_connextdds","commit_stats":null,"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ros2%2Frmw_connextdds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ros2%2Frmw_connextdds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ros2%2Frmw_connextdds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ros2%2Frmw_connextdds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ros2","download_url":"https://codeload.github.com/ros2/rmw_connextdds/tar.gz/refs/heads/rolling","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247464222,"owners_count":20942970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rmw","ros","rti-connext-dds"],"created_at":"2024-11-13T17:08:08.949Z","updated_at":"2025-04-06T10:13:21.136Z","avatar_url":"https://github.com/ros2.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ROS 2 Middleware Layer for RTI Connext DDS\n\nThis repository contains two novel implementations of the [ROS 2](https://docs.ros.org/en/rolling)\nRMW layer which allow developers to deploy their ROS applications on top of\n[RTI Connext DDS Professional](https://www.rti.com/products/connext-dds-professional)\nand [RTI Connext DDS Micro](https://www.rti.com/products/connext-dds-micro).\n\nThe repository provides two RMW packages:\n\n- `rmw_connextdds`\n\n- `rmw_connextddsmicro`\n\nPackage `rmw_connextdds` is meant to be a replacement for [`rmw_connext_cpp`](https://github.com/ros2/rmw_connext).\nThis new implementation resolves several performance issues, and it improves out-of-the-box\ninteroperability with DDS applications.\n\n*The repository is undergoing stabilization, with some features still in\nactive development.\nPlease consider reporting any [issue](https://github.com/rticommunity/rmw_connextdds/issues)\nthat you may experience, while monitoring the repository for frequent updates.*\n\nFor any questions or feedback, feel free to reach out to robotics@rti.com.\n\n## Quick Start\n\n1. Load ROS into the shell environment (Rolling if using the `master` branch,\n   see [Support for different ROS 2 Releases](#support-for-different-ros-2-releases))\n\n    ```sh\n    source /opt/ros/rolling/setup.bash\n    ```\n\n2. Configure RTI Connext DDS Professional and/or RTI Connext DDS Micro on your\n   system (see [Requirements](#rti-connext-dds-requirements)). Make the installation(s)\n   available via environment variables, e.g. by using the provided\n   `rtisetenv_\u003carchitecture\u003e.bash` script (replace `~/rti_connext_dds-6.0.1` with\n   the path of your Connext installation):\n\n   ```sh\n    source ~/rti_connext_dds-6.0.1/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.bash\n    export CONNEXTDDS_DIR=${NDDSHOME}\n    ```\n\n3. Create an overlay directory and clone the repository:\n\n    ```sh\n    mkdir -p ~/ros2_connextdds/src/ros2\n    cd ~/ros2_connextdds\n    git clone https://github.com/rticommunity/rmw_connextdds.git src/ros2/rmw_connextdds\n    ```\n\n4. Build the RMW:\n\n    ```sh\n    colcon build --symlink-install\n    ```\n\n5. Load the generated environment script:\n\n    ```sh\n    source ~/ros2_connextdds/install/setup.bash\n    ```\n\n6. Run ROS applications with RTI Connext DDS Professional:\n\n    ```sh\n    RMW_IMPLEMENTATION=rmw_connextdds ros2 run demo_nodes_cpp talker\n    ```\n\n7. Run ROS applications with RTI Connext DDS Micro:\n\n    ```sh\n    RMW_IMPLEMENTATION=rmw_connextddsmicro ros2 run demo_nodes_cpp talker\n    ```\n\n## Support for different ROS 2 Releases\n\n`rmw_connextdds`, and `rmw_connextddsmicro` support multiple versions of ROS 2.\n\nThe following table summarizes which branch of the repository should be\nchecked out in order to compile the RMW implementations for a specific ROS 2\nrelease:\n\n|ROS 2 Release|Branch|Status|\n|-------------|------|------|\n|Rolling      |`rolling`|Developed|\n|Iron         |`iron`|Supported until November 2024|\n|Humble       |`humble`|Supported until May 2027|\n|Galactic     |`galactic`|Supported until November 2022 (EOL)|\n|Foxy         |`foxy`|Supported until May 2023 (EOL)|\n|Eloquent     |`eloquent`|Supported until November 2020 (EOL)|\n|Dashing      |`dashing`|Supported until May 2021 (EOL)|\n\nBranch `rolling` is actively developed and maintained. It is used to create\nother branches for specific ROS 2 releases (starting from Galactic).\n\nAll other non-EOL branches will receive updates for critical bug fixes and\nimportant patches only.\n\n## RTI Connext DDS Requirements\n\nBoth RMW packages require the appropriate version of RTI Connext DDS to be\navailable on the build and target systems.\n\n`rmw_connextdds` requires RTI Connext DDS Professional (version 5.3.1 or later),\nwhile `rmw_connextddsmicro` requires RTI Connext DDS Micro (version 3 or later).\n\nThe installations must be made available via environment variables. If no\nvalid installation is detected, the packages will be skipped and not be built.\n\n|RMW|RTI Product|Environment Variable(s)|Required|Default|\n|---|-----------|-----------------------|--------|-------|\n|`rmw_connextdds`|RTI Connext DDS Professional 5.3.1, or 6.x|`CONNEXTDDS_DIR`, or `NDDSHOME`|Yes|None|\n|`rmw_connextddsmicro`|RTI Connext DDS Micro 3.x |`RTIMEHOME`|No (if RTI Connext DDS Professional 6.x is available)|Guessed from contents of RTI Connext DDS Professional installation (6.x only, 5.3.1 users must specify `RTIMEHOME`).|\n\n### Multiple versions of RTI Connext DDS Professional\n\nPackage `rti_connext_dds_cmake_module` will first check variable\n`${CONNEXTDDS_DIR}`, and then fall back to `${NDDSHOME}` to determine the\nlocation of the RTI Connext DDS Professional libraries used by\n`rmw_connextdds`\n\nThis behavior allows users of the old Connext RMW (`rmw_connext_cpp`) who\nhave installed RTI Connext DDS Professional 5.3.1 via the `apt` package\n`rti-connext-dds-5.3.1`, to have both that version, and a more recent one\n(e.g. 6.0.1) installed on their system, but configured via different variables.\n\nIf `rmw_connext_cpp` is installed via debian package\n`ros-\u003cversion\u003e-rmw-connext-cpp`, variable `${NDDSHOME}` will always be\nhard-coded to the install location of the `apt` package\n(`/opt/rti.com/rti_connext_dds-5.3.1`).\n\nIn this case, you can use `${CONNEXTDDS_DIR}` to point to a Connext 6.x\ninstallation, making sure to source script\n`rti_connext_dds-6.x.x/resource/scripts/rtisetenv_\u003carchitecture\u003e.bash` after\nloading your ROS installation, so that the Connext 6.x libraries and paths will\nbe found first in the relevant environement variables (e.g. `${LD_LIBRARY_PATH}`).\n\nIf you encounter any errors with selecting your desired Connext installation,\nconsider uninstalling `rmw_connext_cpp` and `connext_cmake_module`\n(e.g. `sudo apt remove ros-\u003cversion\u003e-rmw-connext-cpp ros-\u003cversion\u003e-connext-cmake-module`).\n\n## Runtime Configuration\n\nIn addition to standard configuration facilities provided by the ROS 2 RMW\ninterface, `rmw_connextdds`, and `rmw_connextddsmicro` support the additional\nconfiguration of some aspects of their runtime behavior via custom environment\nvariables.\n\n- [RMW_CONNEXT_CYCLONE_COMPATIBILITY_MODE](#RMW_CONNEXT_CYCLONE_COMPATIBILITY_MODE)\n- [RMW_CONNEXT_DISABLE_LARGE_DATA_OPTIMIZATIONS](#RMW_CONNEXT_DISABLE_LARGE_DATA_OPTIMIZATIONS)\n- [RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY](#RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY)\n- [RMW_CONNEXT_DISABLE_RELIABILITY_OPTIMIZATIONS](#RMW_CONNEXT_DISABLE_RELIABILITY_OPTIMIZATIONS)\n- [RMW_CONNEXT_ENDPOINT_QOS_OVERRIDE_POLICY](#RMW_CONNEXT_ENDPOINT_QOS_OVERRIDE_POLICY)\n- [RMW_CONNEXT_INITIAL_PEERS](#RMW_CONNEXT_INITIAL_PEERS)\n- [RMW_CONNEXT_LEGACY_RMW_COMPATIBILITY_MODE](#RMW_CONNEXT_LEGACY_RMW_COMPATIBILITY_MODE)\n- [RMW_CONNEXT_PARTICIPANT_QOS_OVERRIDE_POLICY](#RMW_CONNEXT_PARTICIPANT_QOS_OVERRIDE_POLICY)\n- [RMW_CONNEXT_REQUEST_REPLY_MAPPING](#RMW_CONNEXT_REQUEST_REPLY_MAPPING)\n- [RMW_CONNEXT_UDP_INTERFACE](#RMW_CONNEXT_UDP_INTERFACE)\n- [RMW_CONNEXT_USE_DEFAULT_PUBLISH_MODE](#RMW_CONNEXT_USE_DEFAULT_PUBLISH_MODE)\n\n### RMW_CONNEXT_CYCLONE_COMPATIBILITY_MODE\n\nEnable different policies to improve interoperability with `rmw_cyclonedds_cpp`.\n\nBy default, ROS 2 applications using `rmw_connextdds` will be able to communicate\nwith those using `rmw_cyclonedds_cpp` only via ROS 2 publishers and subscribers,\nwhile ROS 2 clients and services will not interoperate across vendors.\n\nThe reason for this incompatibility lies in `rmw_cyclonedds_cpp`'s use of a custom\nmapping for propagating request metadata between clients and services.\n\nWhen this \"compatibility mode\" is enabled, `rmw_connextdds` (and `rmw_connextddsmicro`)\nwill use this non-standard profile in order to interoperate with `rmw_cyclonedds_cpp`,\ninstead of using one the two standard profiles defined by the DDS-RPC specification\n(see [RMW_CONNEXT_REQUEST_REPLY_MAPPING](#rmw_connext_request_reply_mapping)).\n\n### RMW_CONNEXT_DISABLE_LARGE_DATA_OPTIMIZATIONS\n\nBy default, `rmw_connextdds` will try to detect the use of \"large data\" types,\nand automatically optimize the QoS of DDS DataWriters and DataReaders\nusing these types, to improve out of the box performance on reliable streams.\n\nThese optimizations will be applied to any endpoint whose type has a serialized\nsize of at least 1MB (configured by a compile-time limit).\n\n`rmw_connextdds` will modify a \"large data\" endpoint's RTPS reliability\nprotocol parameters to more quickly recover samples, which typically improves\nperformance in the presence of very fragmented data, but it might also\nend up increasing network traffic unnecessarily, particularly if data is not\nexchanged at a fast periodic pace.\n\nVariable `RMW_CONNEXT_DISABLE_LARGE_DATA_OPTIMIZATIONS` may be used to disable\nthese automatic optimizations, and revert to Connext's default behavior.\n\n### RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY\n\nBy default, `rmw_connextdds` modifies the QoS of its DomainParticipant to enable\nthe optimizations defined by RTI Connext DDS' built-in QoS snippet\n`Optimization.Discovery.Endpoint.Fast`.\n\nThese optimizations speed up the discovery process between different applications\nbut they also introduce an overhead in network traffic, which might be undesirable\nfor larger systems.\n\nVariable `RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY` may be used to disable\nthese automatic optimizations, and to leave the DomainParticipant's QoS to\nits defaults.\n\n### RMW_CONNEXT_DISABLE_RELIABILITY_OPTIMIZATIONS\n\nBy default, `rmw_connextdds` will modify the QoS of each reliable DataWriter\nand DataReader to improve the responsiveness of the RTPS [reliability protocol](https://community.rti.com/static/documentation/connext-dds/6.0.1/doc/manuals/connext_dds/html_files/RTI_ConnextDDS_CoreLibraries_UsersManual/Content/UsersManual/Using_QosPolicies_to_Tune_the_Reliable_P.htm?tocpath=Part%203%3A%20Advanced%20Concepts%7C11.%20Reliable%20Communications%7C11.3%20Using%20QosPolicies%20to%20Tune%20the%20Reliable%20Protocol%7C_____0#reliable_1394042328_776265).\n\nFor example, the [\"heartbeat period\"](https://community.rti.com/static/documentation/connext-dds/6.0.1/doc/manuals/connext_dds/html_files/RTI_ConnextDDS_CoreLibraries_UsersManual/Content/UsersManual/Controlling_Heartbeats_and_Retries.htm#reliable_1394042328_785637)\nis sped up from 3 seconds to 100 milliseconds.\n\nThese optimizations may be disabled using variable\n`RMW_CONNEXT_DISABLE_RELIABILITY_OPTIMIZATIONS`.\n\n### RMW_CONNEXT_ENDPOINT_QOS_OVERRIDE_POLICY\n\nWhen this variable is not set or set to `always`, the QoS settings specified in\nthe default profile will be used and the ros QoS profile will be applied on top\nof it. You can use topic filters in XML profile files to have different defaults\nfor different topics, but you have to use the mangled topic names\n(see [ROS topic mangling conventions](#ros-topic-mangling-conventions)).\n\nIn case this variable is set to `never`, the QoS settings will be loaded from\nthe default profile as before but the ros QoS profile will be ignored.\nBe aware of configuring the QoS of rcl topics (`rt/rosout`, `rt/parameter_events`,\netc.) and the rmw internal topic `ros_discovery_info` correctly.\n\nThis variable can also be set to `dds_topics: \u003cregex\u003e`, e.g.:\n `dds_topics: rt/my_topic|rt/my_ns/another_topic`.\nIn that case, QoS settings for topics matching the provided regex will be\nloaded in the same way as the `never` policy, and the ones that don't match\nwill be loaded in the same way as the `always` policy.\n\n#### ROS topic mangling conventions\n\nROS mangles topic names in the following way:\n\n- Topics are prefixed with `rt`. e.g.: `/my/fully/qualified/ros/topic` is converted to `rt/my/fully/qualified/ros/topic`.\n- The service request topics are prefixed with `rq` and suffixed with `Request`. e.g.: `/my/fully/qualified/ros/service` request topic is `rq/my/fully/qualified/ros/serviceRequest`.\n- The service response topics are prefixed with `rr` and suffixed with `Reply`. e.g.: `/my/fully/qualified/ros/service` response topic is `rr/my/fully/qualified/ros/serviceReply`.\n\n### RMW_CONNEXT_INITIAL_PEERS\n\nVariable `RMW_CONNEXT_INITIAL_PEERS` can be used to specify a list of\ncomma-separated values of \"address locators\" that the DomainParticipant created\nby the RMW will use to try to make contact with remote peer applications\nduring the DDS discovery phase.\n\nThe values will be parsed, trimmed, and stored in QoS field\n`DDS_DomainParticipantQos::discovery::initial_peers`, overwriting any\nvalue it previously contained.\n\nWhile both `rmw_connextdds` and `rmw_connextddsmicro` will honor this variable,\n[equivalent, and more advanced, functionality is already available in RTI Connext DDS](https://community.rti.com/static/documentation/connext-dds/6.0.1/doc/manuals/connext_dds/html_files/RTI_ConnextDDS_CoreLibraries_UsersManual/Content/UsersManual/ConfigPeersListUsed_inDiscov.htm),\nfor example using variable `NDDS_DISCOVERY_PEERS`.\n\nFor this reason, only users of `rmw_connextddsmicro` should consider specifying\n`RMW_CONNEXT_INITIAL_PEERS`.\n\nFor example, `rmw_connextddsmicro` will use `lo` as its default UDP network\ninterface (see [RMW_CONNEXT_UDP_INTERFACE](#RMW_CONNEXT_UDP_INTERFACE)),\nwhich will prevent it from accessing the default discovery peer\n(multicast address `239.255.0.1`).\nThe default peer configuration will also prevent the DomainParticipant from\ncarrying out discovery over the built-in shared-memory transport.\nTo enable discovery over this transport, in addition to\nthe default multicast peer:\n\n```sh\nRMW_IMPLEMENTATION=rmw_connextddsmicro \\\nRMW_CONNEXT_INITIAL_PEERS=\"_shmem://, 239.255.0.1\" \\\n  ros2 run demo_nodes_cpp listener\n```\n\n### RMW_CONNEXT_LEGACY_RMW_COMPATIBILITY_MODE\n\nROS 2 applications using `rmw_connextdds` will not be able to interoperate with\napplications using the previous RMW implementation for RTI Connext DDS, `rmw_connext_cpp`,\nunless variable `RMW_CONNEXT_LEGACY_RMW_COMPATIBILITY_MODE` is used to enable\na \"compatibility\" mode with these older implementation.\n\nIn particular, when this mode is enabled, `rmw_connextdds` will revert to adding\na suffix (`_`) to the end of the names of the attributes of the ROS 2 data types\npropagated via DDS discovery.\n\n### RMW_CONNEXT_PARTICIPANT_QOS_OVERRIDE_POLICY\n\nControl how `rmw_connextdds` will override the default DomainParticipantQos obtained\nfrom Connext.\n\nIf this variable is unspecified, or set to `all`, then `rmw_connextdds` will modify\nthe default DomainParticipantQos with settings derived from ROS 2 options (e.g.\n\"node enclave\"), and some additional optimizations meant to improve the out of\nthe box experiene (e.g. speed up endpoint discovery, and increase the size of type\ninformation shared via discovery).\n\nIf the variable is set to `basic`, then only those settings associated with ROS 2\noptions will be modified.\n\nIf the variable is set to `never`, then no settings will be modified and the\nDomainParticipantQos will be used as is.\n\nNote that values `basic` and `never` will disable the same endpoint discovery\noptimizations controlled by [RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY](#RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY).\n\n### RMW_CONNEXT_REQUEST_REPLY_MAPPING\n\nThe [DDS-RPC specification](https://www.omg.org/spec/DDS-RPC/About-DDS-RPC/)\ndefines two profiles for mapping \"request/reply\" interactions over DDS messages\n(e.g. ROS 2 clients and services):\n\n- the *basic* profile conveys information about the originator of a request as\n  an inline payload, serialized before the actual request/reply payloads.\n\n- The *extended* profile relies on DDS' metadata to convey request/reply\n  information out of band.\n\nBy default, `rmw_connextdds` uses the *extended* profile when sending requests\nfrom a ROS 2 client to a service, while `rmw_connextddsmicro` uses the *basic* one.\n\nVariable `RMW_CONNEXT_REQUEST_REPLY_MAPPING` can be used to select the actual\nprofile used at runtime. Either `\"basic\"` or `\"extended\"` may be specified.\n\nAt the moment, the *extended* profile is only available with `rmw_connextdds`.\nIn this configuration, `rmw_connextdds` will interoperate with `rmw_fastrtps_cpp`,\ne.g.:\n\n```sh\nRMW_IMPLEMENTATION=rmw_connextdds \\\n  ros2 run demo_nodes_cpp add_two_ints_server\n\nRMW_IMPLEMENTATION=rmw_fastrtps_cpp \\\n  ros2 run demo_nodes_cpp add_two_ints_client\n```\n\nWhen using the *basic* profile, `rmw_connextdds` will interoperate with\n`rmw_connextddsmicro`, e.g.:\n\n```sh\nRMW_IMPLEMENTATION=rmw_connextdds \\\nRMW_CONNEXT_REQUEST_REPLY_MAPPING=basic \\\n  ros2 run demo_nodes_cpp add_two_ints_server\n\nRMW_IMPLEMENTATION=rmw_connextddsmicro \\\nRMW_CONNEXT_INITIAL_PEER=localhost \\\n  ros2 run demo_nodes_cpp add_two_ints_client\n```\n\nUse variable [RMW_CONNEXT_CYCLONE_COMPATIBILITY_MODE](#RMW_CONNEXT_CYCLONE_COMPATIBILITY_MODE)\nto enable interoperability with `rmw_cyclonedds_cpp` using a non-standard version\nof the *basic* profile, e.g.:\n\n```sh\nRMW_IMPLEMENTATION=rmw_connextdds \\\nRMW_CONNEXT_CYCLONE_COMPATIBILITY_MODE=y \\\n  ros2 run demo_nodes_cpp add_two_ints_server\n\nRMW_IMPLEMENTATION=rmw_cyclonedds_cpp \\\n  ros2 run demo_nodes_cpp add_two_ints_client\n```\n\n### RMW_CONNEXT_UDP_INTERFACE\n\nRTI Connext DDS Micro requires applications to explicitly configure the network\ninterface to use for UDPv4 communication.\n\n`rmw_connextddsmicro` makes the arbitrary decision of using `lo` as the default\ninterface.\n\nThis is undesireable if non-local communication is required, and/or if the\ndefault DDS multicast peer (`239.255.0.1`) is to be used.\n\nVariable `RMW_CONNEXT_UDP_INTERFACE` may be used to customize the network interface\nactually used by RTI Connext DDS Micro's UDPv4 transport, e.g. to use `eth0`:\n\n```sh\nRMW_IMPLEMENTATION=rmw_connextddsmicro \\\nRMW_CONNEXT_UDP_INTERFACE=eth0 \\\n  ros2 run demo_nodes_cpp listener\n```\n\nThis variable is not used by `rmw_connextdds`.\n\n### RMW_CONNEXT_USE_DEFAULT_PUBLISH_MODE\n\n`rmw_connextdds` will always set `DDS_DataWriterQos::publish_mode::kind` of\nany DataWriter it creates to `DDS_ASYNCHRONOUS_PUBLISH_MODE_QOS`, in order to\nenable out of the box support for \"large data\".\n\nThis behavior might not be always desirable, and it can be disabled by setting\n`RMW_CONNEXT_USE_DEFAULT_PUBLISH_MODE` to a non-empty value.\n\nThis variable is not used by `rmw_connextddsmicro`, since it doesn't\nautomatically override `DDS_DataWriterQos::publish_mode::kind`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fros2%2Frmw_connextdds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fros2%2Frmw_connextdds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fros2%2Frmw_connextdds/lists"}