# Fast-DDS **Repository Path**: src-openeuler/Fast-DDS ## Basic Information - **Project Name**: Fast-DDS - **Description**: eprosima Fast DDS* (formerly Fast RTPS) is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group). - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 5 - **Created**: 2021-12-28 - **Last Updated**: 2025-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: sig-ROS ## README # Fast-DDS #### 介绍 eprosima Fast DDS*(以前称为 Fast RTPS)是 OMG(对象管理组)的 DDS(数据分发服务)标准的 C++ 实现。 #### 软件架构 软件架构说明 https://github.com/eProsima/Fast-DDS.git 文件内容: ``` ./ ├── cmake │   ├── common │   │   ├── check_configuration.cmake │   │   ├── eprosima_libraries.cmake │   │   ├── GitUtils.cmake │   │   ├── gtest.cmake │   │   └── Utils.cmake │   ├── dev │   │   ├── generate_msvc_libraries.cmake │   │   └── set_sources.cmake │   ├── modules │   │   ├── CheckForPthreads.c │   │   ├── CheckLibatomic.cmake │   │   ├── Findandroid-ifaddrs.cmake │   │   ├── FindAsio.cmake │   │   ├── FindThirdpartyBoost.cmake │   │   ├── FindThreads.cmake │   │   └── FindTinyXML2.cmake │   └── packaging │   ├── Config.cmake.in │   ├── eProsimaPackaging.cmake │   ├── linux │   └── windows ├── CMakeLists.txt ├── colcon.pkg ├── configure.ac ├── CONTRIBUTING.md ├── CTestJenkins.cmake ├── doc │   ├── design │   │   ├── intra-process.md │   │   └── shared-memory-transport │   ├── pdf │   │   ├── FASTRTPSGEN - User Manual.odt │   │   ├── Fast RTPS - Installation Manual.odt │   │   ├── Fast RTPS - Latency Test.odt │   │   ├── Fast RTPS - Throughput Test.odt │   │   └── Fast RTPS - User Manual.odt │   ├── proposals │   │   └── shared-memory-transport │   └── README.html.in ├── doxyfile.in ├── examples │   ├── C++ │   │   ├── Benchmark │   │   ├── ClientServerTest │   │   ├── Configurability │   │   ├── DDS │   │   ├── DeadlineQoSExample │   │   ├── DisablePositiveACKs │   │   ├── DynamicHelloWorldExample │   │   ├── Filtering │   │   ├── FlowControlExample │   │   ├── HelloWorldExample │   │   ├── HelloWorldExampleSharedMem │   │   ├── HelloWorldExampleTCP │   │   ├── HistoryKind │   │   ├── Keys │   │   ├── LateJoiners │   │   ├── LifespanQoSExample │   │   ├── LivelinessQoS │   │   ├── OwnershipStrengthQoSExample │   │   ├── RTPSTest_as_socket │   │   ├── RTPSTest_persistent │   │   ├── RTPSTest_registered │   │   ├── SampleConfig_Controller │   │   ├── SampleConfig_Events │   │   ├── SampleConfig_Multimedia │   │   ├── SecureHelloWorldExample │   │   ├── StaticHelloWorldExample │   │   ├── UserDefinedTransportExample │   │   └── XMLProfiles │   └── CMakeLists.txt ├── fastrtps.repos ├── include │   ├── dds │   │   ├── core │   │   ├── domain │   │   ├── pub │   │   ├── sub │   │   └── topic │   ├── fastdds │   │   ├── dds │   │   └── rtps │   ├── fastrtps │   │   ├── attributes │   │   ├── common │   │   ├── config │   │   ├── config.h.in │   │   ├── Domain.h │   │   ├── eProsima_auto_link.h │   │   ├── fastrtps_all.h │   │   ├── fastrtps_dll.h │   │   ├── fastrtps_fwd.h │   │   ├── log │   │   ├── participant │   │   ├── publisher │   │   ├── qos │   │   ├── rtps │   │   ├── subscriber │   │   ├── TopicDataType.h │   │   ├── transport │   │   ├── types │   │   ├── utils │   │   └── xmlparser │   └── Makefile.am.in ├── LICENSE ├── m4 │   ├── ax_check_openssl.m4 │   ├── ax_cxx_compile_stdcxx_0x.m4 │   └── ax_cxx_compile_stdcxx_11.m4 ├── Makefile.am.in ├── package.xml ├── PLATFORM_SUPPORT.md ├── Public_API_foonathan_memory.md ├── Quality_Declaration_foonathan_memory.md ├── QUALITY.md ├── README.md ├── resources │   └── xsd │   ├── fastRTPS_profiles.xsd │   ├── governance.xsd │   └── permissions.xsd ├── roadmap.md ├── src │   └── cpp │   ├── CMakeLists.txt │   ├── dds │   ├── dynamic-types │   ├── fastdds │   ├── fastrtps_deprecated │   ├── fastrtps.rc │   ├── Makefile.am.in │   ├── rtps │   ├── security │   └── utils ├── test │   ├── blackbox │   │   ├── api │   │   ├── CMakeLists.txt │   │   ├── common │   │   ├── discovery_participant_flags.xml │   │   ├── persistence.xml │   │   ├── PubSubReader.xml.in │   │   ├── PubSubWriter.xml.in │   │   ├── types │   │   ├── utils │   │   ├── XFAIL_DDS_PIM.list │   │   └── XFAIL_DDS_PIM_SECURITY.list │   ├── certs │   │   ├── certs │   │   ├── crlnumber │   │   ├── expiredpubcert.pem │   │   ├── expiredpubcert.txt │   │   ├── expiredpub.cnf │   │   ├── expiredpubkey.pem │   │   ├── expiredpubreq.pem │   │   ├── governance_disable_discovery_disable_access_encrypt.smime │   │   ├── governance_disable_discovery_disable_access_encrypt.xml │   │   ├── governance_disable_discovery_disable_access_none.smime │   │   ├── governance_disable_discovery_disable_access_none.xml │   │   ├── governance_disable_discovery_enable_access_encrypt.smime │   │   ├── governance_disable_discovery_enable_access_encrypt.xml │   │   ├── governance_disable_discovery_enable_access_none.smime │   │   ├── governance_disable_discovery_enable_access_none.xml │   │   ├── governance_enable_discovery_disable_access_encrypt.smime │   │   ├── governance_enable_discovery_disable_access_encrypt.xml │   │   ├── governance_enable_discovery_disable_access_none.smime │   │   ├── governance_enable_discovery_disable_access_none.xml │   │   ├── governance_enable_discovery_enable_access_encrypt.smime │   │   ├── governance_enable_discovery_enable_access_encrypt.xml │   │   ├── governance_enable_discovery_enable_access_none.smime │   │   ├── governance_enable_discovery_enable_access_none.xml │   │   ├── governance_helloworld_all_enable.smime │   │   ├── governance_helloworld_all_enable.xml │   │   ├── governance_rule_order_test_inverse.smime │   │   ├── governance_rule_order_test_inverse.xml │   │   ├── governance_rule_order_test.smime │   │   ├── governance_rule_order_test.xml │   │   ├── governance.txt │   │   ├── index_sec.txt │   │   ├── index.txt │   │   ├── index.txt.attr │   │   ├── joinedcacertcrl.pem │   │   ├── maincacert.pem │   │   ├── maincacert.txt │   │   ├── maincaconf.cnf │   │   ├── maincakey.pem │   │   ├── maincrl.pem │   │   ├── mainpubcert.pem │   │   ├── mainpubcert.txt │   │   ├── mainpub.cnf │   │   ├── mainpubkey.pem │   │   ├── mainpubreq.pem │   │   ├── mainsubcert.pem │   │   ├── mainsubcert.txt │   │   ├── mainsub.cnf │   │   ├── mainsubkey.pem │   │   ├── mainsubreq.pem │   │   ├── permissions_access_control_tests.smime │   │   ├── permissions_access_control_tests.xml │   │   ├── permissions_helloworld_partitions.smime │   │   ├── permissions_helloworld_partitions.xml │   │   ├── permissions_helloworld.smime │   │   ├── permissions_helloworld.xml │   │   ├── permissions.smime │   │   ├── permissions.xml │   │   ├── pwdpubcert.pem │   │   ├── pwdpubcert.txt │   │   ├── pwdpub.cnf │   │   ├── pwdpubkey.pem │   │   ├── pwdpubreq.pem │   │   ├── revokedpubcert.pem │   │   ├── revokedpubcert.txt │   │   ├── revokedpub.cnf │   │   ├── revokedpubkey.pem │   │   ├── revokedpubreq.pem │   │   ├── seccacert.pem │   │   ├── seccacert.txt │   │   ├── seccaconf.cnf │   │   ├── seccakey.pem │   │   ├── serial │   │   └── serial_sec │   ├── CMakeLists.txt │   ├── communication │   │   ├── automatic_liveliness_assertion.py │   │   ├── CMakeLists.txt │   │   ├── liveliness_assertion.120.xml │   │   ├── liveliness_assertion.360.xml │   │   ├── liveliness_assertion.py │   │   ├── liveliness_assertion.xml │   │   ├── multiple_subs_secure_crypto_communication.py │   │   ├── Publisher.cpp │   │   ├── Publisher.hpp │   │   ├── PublisherMain.cpp │   │   ├── PubSubMain.cpp │   │   ├── secure_msg_crypto_besteffort_pub.xml │   │   ├── secure_msg_crypto_besteffort_sub.xml │   │   ├── secure_msg_submsg_crypto_besteffort_pub.xml │   │   ├── secure_msg_submsg_crypto_besteffort_sub.xml │   │   ├── secure_submsg_crypto_besteffort_pub.xml │   │   ├── secure_submsg_crypto_besteffort_sub.xml │   │   ├── shm_communication_subscriber_dies_while_processing_message.py │   │   ├── shm_communication_subscriber_dies_while_processing_message.xml │   │   ├── simple_besteffort.xml │   │   ├── simple_communication.py │   │   ├── simple_mix_communication.py │   │   ├── simple_reliable_besteffort.xml │   │   ├── simple_reliable.xml │   │   ├── simple_secure_besteffort_pub.xml │   │   ├── simple_secure_besteffort_sub.xml │   │   ├── Subscriber.cpp │   │   ├── Subscriber.hpp │   │   ├── SubscriberMain.cpp │   │   └── two_publishers_communication.py │   ├── dds │   │   └── communication │   ├── mock │   │   ├── dds │   │   └── rtps │   ├── performance │   │   ├── CMakeLists.txt │   │   ├── latency │   │   ├── optionparser.h │   │   ├── throughput │   │   └── video │   ├── profiling │   │   ├── allocations │   │   ├── CMakeLists.txt │   │   ├── cycles_tests.py │   │   ├── main_MemoryTest.cpp │   │   ├── memory_analysis.py │   │   ├── MemoryTestPublisher.cpp │   │   ├── MemoryTestPublisher.h │   │   ├── memory_tests.py │   │   ├── MemoryTestSubscriber.cpp │   │   ├── MemoryTestSubscriber.h │   │   ├── MemoryTestTypes.cpp │   │   ├── MemoryTestTypes.h │   │   ├── optionparser.h │   │   └── RTPSProfilingCommon.h │   ├── realtime │   │   ├── CMakeLists.txt │   │   ├── mutex_testing_tool │   │   └── UserThreadNonBlockedTest.cpp │   ├── staticdiscovery.txt │   ├── system │   │   └── tools │   ├── unittest │   │   ├── CMakeLists.txt │   │   ├── common │   │   ├── dds │   │   ├── dynamic_types │   │   ├── logging │   │   ├── rtps │   │   ├── security │   │   ├── transport │   │   ├── utils │   │   ├── xmlparser │   │   └── xtypes │   └── xtypes │   ├── CMakeLists.txt │   ├── idl │   ├── TestPublisher.cpp │   ├── TestPublisher.h │   ├── TestSubscriber.cpp │   ├── TestSubscriber.h │   └── XTypesTests.cpp ├── thirdparty │   ├── android-ifaddrs │   ├── asio │   ├── boost │   │   ├── include │   │   ├── LICENSE.TXT │   │   └── test │   ├── fastcdr │   ├── nlohmann-json │   │   └── json.hpp │   └── tinyxml2 ├── tools │   ├── CMakeLists.txt │   ├── fastdds │   │   ├── CMakeLists.txt │   │   ├── discovery │   │   ├── fastdds │   │   ├── fastdds.bat │   │   ├── fastdds.py │   │   ├── ros-discovery │   │   ├── ros-discovery.bat │   │   └── shm │   └── fds │   ├── CMakeLists.txt │   ├── fast-discovery-server.bat.in │   ├── optionparser.h │   ├── README.txt │   ├── server.cpp │   └── server.h ├── UPGRADING.md ├── utils │   ├── doxygen │   │   ├── complete_doxyfile_api │   │   ├── examples │   │   └── pages │   ├── futureCode │   │   ├── ReceivedChanges.cpp │   │   ├── ReceivedChanges.h │   │   ├── SkipList.cpp │   │   └── SkipList.h │   ├── images │   │   ├── icon │   │   └── logo │   └── pcTests │   └── Readme.md ├── valgrind.supp ├── VERSIONING.md └── versions.md ``` #### 安装教程 1. 下载RPM包 aarch64: ``` wget https://117.78.1.88/build/home:Chenjy3_22.03/openEuler_22.03_LTS_standard_aarch64/aarch64/Fast-DDS/ros2-foxy-ros2-Fast-DDS-2.1.2-1.oe2203.aarch64.rpm ``` x86_64: ``` wget https://117.78.1.88/build/home:Chenjy3_22.03/openEuler_22.03_LTS_standard_x86_64/x86_64/Fast-DDS/ros2-foxy-ros2-Fast-DDS-2.1.2-1.oe2203.x86_64.rpm ``` 2. 安装rpm包 aarch64: ``` sudo rpm -ivh --nodeps --force ros2-foxy-ros2-Fast-DDS-2.1.2-1.oe2203.aarch64.rpm ``` x86_64: ``` sudo rpm -ivh --nodeps --force ros2-foxy-ros2-Fast-DDS-2.1.2-1.oe2203.x86_64.rpm ``` #### 使用说明 依赖环境安装: ``` sh /opt/ros/foxy/install_dependence.sh ``` 安装完成以后,在/opt/ros/foxy/目录下如下输出,则表示安装成功。 输出: ``` ./ ├── bin │   ├── fastdds │   ├── fast-discovery-server -> fast-discovery-server-1.0.0 │   ├── fast-discovery-server-1.0.0 │   ├── nodesize_dbg │   └── ros-discovery ├── COLCON_IGNORE ├── include │   ├── ament_index_cpp │   ├── fastcdr │   ├── fastdds │   ├── fastrtps │   └── foonathan_memory ├── lib │   ├── cmake │   ├── libament_index_cpp.so │   ├── libfastcdr.so -> libfastcdr.so.1 │   ├── libfastcdr.so.1 -> libfastcdr.so.1.0.13 │   ├── libfastcdr.so.1.0.13 │   ├── libfastrtps.so -> libfastrtps.so.2 │   ├── libfastrtps.so.2 -> libfastrtps.so.2.1.2 │   ├── libfastrtps.so.2.1.2 │   └── python3.9 ├── lib64 │   ├── foonathan_memory │   └── libfoonathan_memory-0.7.1.a ├── local_setup.bash ├── local_setup.ps1 ├── local_setup.sh ├── _local_setup_util_ps1.py ├── _local_setup_util_sh.py ├── local_setup.zsh ├── setup.bash ├── setup.ps1 ├── setup.sh ├── setup.zsh ├── share │   ├── colcon-core │   ├── fastcdr │   ├── fastrtps │   ├── foonathan_memory │   ├── foonathan_memory_vendor │   ├── gmock_vendor │   └── gtest_vendor ├── src │   ├── gmock_vendor │   └── gtest_vendor └── tools └── fastdds ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)