eProsima Fast DDS
Version 3.6.1 Stable
| Maturity | Stable |
| Released on | Sunday, 28 June 2026 |
| Viewed | 0 times |
Release notes
Version 3.6.1 (latest)
This release includes the following fixes:
-
Apply
sqlite3patch to eliminateconstissue -
Remove deprecated doxygen warnings
-
Fix compilation warnings and errors in Ubuntu Focal
Previous end-of-life versions
Version 2.14 Stable
| Maturity | Stable |
| Released on | Saturday, 27 July 2024 |
| Viewed | 0 times |
Release notes
2.14.4 Stable Release
- Free and Open Source: Apache 2.0 License
- Commercial Support Available.
Main Features
- High performance. See the performance benchmarks on the product page.
- Multi-Platform: Windows, Linux, Mac OS, iOS, Android, Raspbian.
- Easy to use: Hello World video tutorial available on the product page.
- Full DDS & RTPS compliance: OMG DDS1-4 & RTPS 2.2 Compliant. Best Effort and Reliable Communications in both Unicast and Multicast.
- DDS Security Support.
What is new:
2.14.3
Fast DDS v2.14 is the last minor version of Fast DDS v2, take a look at Fast DDS v3!
This release includes the following features in an ABI compatible manner:
-
Setting
vendor_idon receivedCacheChange_t
This release includes the following improvements:
-
Repository & CI improvements.
-
Create InitialConnection for TCP Transport initial peers
This release includes the following fixes:
-
Fix topic interference on
liveliness_changedstatus -
Remove doxygen warnings
-
Adjust doxygen so Fast DDS Python pydoc makes RTD build
-
Fix compilation in Ubuntu 24.04 platforms
-
Fix Latency test destruction
Note
When upgrading to version 2.14.3 it is advisable to regenerate generated source from IDL files using Fast DDS-Gen v3.3.0.
2.14.2
Fast DDS v2.14 will be the last minor version of Fast DDS v2, the next major release will be Fast DDS v3.0.0, stay tuned!
This release includes the following features in an ABI compatible manner:
-
Set DataSharing Qos policy in transmitted
WriterProxyDataandReaderProxyData. -
New max_message_size property to limit the output datagrams size.
-
Add XML configuration for Flow Controllers.
This release includes the following improvements:
-
Repository & CI improvements.
-
Do not require PYTHON_VERSION to be defined. in .bat files.
-
Use %* instead of loop in .bat scripts.
-
Use absolute paths when loading XML files.
-
Bump Fast CDR submodule to version 2.2.2.
This release includes the following fixes:
-
Handle errors when setting socket buffer sizes.
-
Do not require Fast CDR v2 in examples.
-
Fix Shared Memory Transport buffer recovery MacOS flaky test.
-
Automatically unmatch remote participants on participant deletion.
-
Bugfix: correct liveliness state in a multiple reader - one writer scenario.
-
Only apply content filter to ALIVE changes.
-
Properly delete builtin statistics writers upon
delete_contained_entities(). -
Fix doxygen warning about undocumented @param in deleted functions.
-
Correctly initialize MatchingFailureMask constants to be used with the std::bitset API.
-
Fix Discovery Server not connecting due to ports logic.
Note
When upgrading to version 2.14.2 it is advisable to regenerate generated source from IDL files using Fast DDS-Gen v3.3.0.
See also
For further information about the corresponding versions of other products related to this Fast DDS version, please refer to the eProsima products compatibility section.
2.14.1:
Fast DDS v2.14 will be the last minor version of Fast DDS v2, the next major release will be Fast DDS v3.0.0, stay tuned!
This release includes the following features in an ABI compatible manner:
-
Implement copy_from_topic_qos method (see Creating a DataWriter and see Creating a DataReader).
This release includes the following improvements:
-
Set 2.12.x as EOL
-
Use a plain switch for NetmaskFilterKind operator
-
Set real TCP non_blocking_send limitation
-
Increase ack waiting time in reliable_on_unack_sample_removed
-
Enforce SHM ports open mode exclusions
-
Force unlimited ResourceLimits if lower or equal to zero (see ResourceLimitsQosPolicy)
-
Allow processing of AckNack submessages with
count == 0 -
Refactor
IStatusQueryableand make monitor service interfaces private -
Internal refactor on port handling
-
Improve
ThreadSettingsQoSlogging -
Run
is_plainmethod with the corresponding data representation -
Address compilation issue for GLIBC version
-
Repository and test improvements:
-
Run Github Ubuntu CI on PRs
-
Only run PRs CI when a review is requested
-
Improve filtering of DNS tests
-
Make
sample_lost_be_dw_be_dr_fragmentstest less flaky -
Build Fast DDS Python bindings in Fast DDS Docs Github CI job
-
Add check for XML API to PR template
-
Refactor Github CI sanitizer related jobs
-
Increase sleep to miss the deadline in macOS flaky tests
-
Fix nightly sanitizer CI workflow name
-
Improve xml loading method in fuzz_XMLProfiles
-
Build ShapesDemo on Ubuntu Github CI
-
Correctly set branches for
reusable-sanitizers-ci
-
This release includes the following fixes:
-
Address XMLProfiles fuzzer regressions
-
Fix flaky Log tests
-
Fix hidden overloaded virtual methods
-
Effectively assert
automatic/manual_by_participantliveliness -
Fix
on_sample_lostnotification on best-effort readers for fragmented samples -
Monitor service properly managing instances
-
Fix CVE-2024-30258
-
Fix Discovery Server over TCP using
LocatorSelectorEntry -
Removed warning
-
Make
get_first_untaken_info()coherent withread()/take() -
Fix serialization of Data(w)/Data(r) in MonitorService
-
Bugfix in
DDSBlackboxTestsDataReadertest -
Fix leak in
SecurityManager::participant_volatile_message_secure_writer_ -
Fix some leaks in XML DynamicTypes Parser
-
Fix support for
@keyannotation in Dynamic types -
Fix SecurityTest unit tests memory error
-
Fix Python Installation version in Github CI. Address failing system tests environment issues
Note
When upgrading to version 2.14.0 it is advisable to regenerate generated source from IDL files using Fast DDS-Gen v3.3.0.
See also
For further information about the corresponding versions of other products related to this Fast DDS version, please refer to the eProsima products compatibility section.
2.14.0:
Fast DDS v2.14 will be the last minor version of Fast DDS v2, and the next major release will be Fast DDS v3.0.0; stay tuned!
This release includes the following new features:
-
Add netmask filter transport configuration
-
Expose Security Authentication plugin Handshake Properties
-
Extend
LARGE_DATAconfiguration options -
OpenOutputChannels / CloseOutputChannels that receive a LocatorSelectorEntry
-
Support GTest v1.14.0
-
Update Fast CDR submodule to v2.2.0
-
Update roadmap and release support
This release includes the following improvements:
-
Ignore custom PIDs defined in Fast DDS when they are received from other vendors
-
Add catch of out-of-range exception for thread settings port
-
Explicitly pass vendor ID to
readFromCdrMessage -
TCP transport improvements:
-
TCPSendResourcescleanup -
TCP
non_blocking_sendmoved to TCPTransportDescriptor
-
-
Various repository improvements and housekeeping:
-
Migrate communication tests to the DDS API
-
Migrate TCPReqRepHelloWorldReplier/Requester to the DDS API
-
Update APIs in video performance tests to the DDS API
-
Remove
FASTDDS_TODO_BEFORE2.14 -
Remove use of deprecated FindPythonInterp
-
Remove idl parser from .repos file
-
Force usage of semicolon in
FASTDDS_TODO_BEFOREmacro -
Ubuntu example testing automation infrastructure
-
-
Multiple Github CI improvements:
-
Add nightly Ubuntu Github CI
-
Improve CI version management
-
Avoid running GitHub CI if PR has conflicts
-
Migrate apt package installation to eProsima-CI action
-
Include missing nightly for 3.0.x branch
-
Adapt nightly jobs for all supported versions
-
Pin CMake version and vm.mmap_rnd_bits in sanitizer workflows
-
Select reusable workflow version depending on target branch in nightly jobs
-
This release includes the following fixes:
-
Fix warnings when compiling for Windows x86
-
TCP first message loss (see TCPTransportDescriptor)
-
Fix warnings on tests on Windows 32bits
-
Protect asio exception hotfix
-
Fix CVE-2024-28231
-
Github CI fixes:
-
Fix CI documentation workflow label triggering
-
Fix nightly jobs
-
Fix input branch on reusable windows CI
-
Use correct version of GTest on DS ASan tests
-
Note
When upgrading to version 2.14.0 it is advisable to regenerate generated source from IDL files using Fast DDS-Gen v3.3.0.
2.13.3
This patch release includes the following improvements:
- Enabling multiple interfaces through whitelist in TCP servers (#4297)
- Set LARGE_DATA Participants logic with the same listening ports (#4396)
- Check History QoS inconsistencies (#4375, #4416, #4417)
This patch release includes the following fixes:
- Prevent index overflow and correctly assert the end iterator in DataSharing (#4321)
- Fix the shared memory cleaning script (#4369)
- Fix TCP reconnection after open logical port failure (#4324)
- Fix data race on PDP (#4220)
- Fix doxygen docs warnings. Prepare for compiling with Doxygen 1.10.0 (#4376)
- Add missing TypeLookup listeners (#4335)
- Restore Blackbox tests names (#4235)
- Add macOS Github CI (#4100)
- Set 2.11.x as EOL (#4343)
PRs in merged order:
#4376, #4235, #4343, #4100, #4321, #4375, #4297, #4324, #4416, #4369, #4220, #4396, #4335, #4417, #4442
This patch release includes the following fixes and improvements:
-
Improve environment variable substitution algorithm
-
Add large data to the Advanced Configuration example
-
Discard already processed samples on
PDPListener -
Ignore
0x8007if coming from other vendor -
TCP unique client announced local port
-
TCP non-blocking send
-
TCP Client&Server Participant Decision-Making
-
Add non-throwing getters for socket info
-
Add a keyed fragmented change to the reader data instance only when it is completed
-
Include a variety of terminate process signals handlers in the discovery server
-
Make DataWriters always send the key hash on keyed topics
-
Update Fast DDS types with Fast DDS Gen to include
in v1 types -
Add serialization for Log::Kind to ostream
-
Fix wrong log info messages on TCP
-
Return const reference in
get_log_resources -
Remove unnecessary warning
-
Avoid a maybe-uninitialized warning
-
Add static cast to an unused variable
-
Prepare for v3.0.0 branch out
-
Windows CI fixes
Note
- When upgrading to version 2.13.2 it is advisable to regenerate generated source from IDL files
-
using Fast DDS-Gen v3.2.1.
2.13.0:
This release upgrades the following Fast DDS dependencies:
This release includes the following improvements:
-
Downgrade CMake minimum required version to 3.20.
-
Update PR template to include check for PR description, title and backports.
-
Update Fast CDR submodule to v2.1.3.
This patch release includes the following fixes:
-
Revert wrong fix for TCP deadlock on channel reuse.
-
Fix wrong history selection when removing PDP samples.
-
Fix data race when processing incoming PDP samples on different threads.
-
Fix DNS test filter in CMakeLists.
-
Fix deserialization of unions in generated code.
Note
- When upgrading to version 2.13.1 it is advisable to regenerate generated source from IDL files using Fast DDS-Gen v3.2.1.
-
2.13.0:
This release upgrades the following Fast DDS dependencies:
This release includes the following features:
-
Support Monitor Service.
-
Enable configuration of thread settings for all threads (both through the C++ API and XML configuration files).
-
Support Autofill port (automatic assignment of a port) for TCP Transport listening port.
-
Support TCP for Discovery Server CLI and environment variable.
-
Usage of gtest_discover_tests.
-
Define a super client by an environment variable.
-
Support adding interfaces to the interface whitelist by the name.
-
Add new methods to configure Builtin Transport.
-
Support DataRepresentationQos.
-
Change the serialize function default behavior to omit the data representation.
-
Upgrade the Fast CDR submodule to v2.1.2.
-
Update roadmap & platform support.
This release includes the following improvements:
-
Rerun failed tests with ctest option instead of colcon’s.
-
Add CCache to all CI jobs.
This release includes the following fixes:
-
Fast DDS bugfixes
-
Fix compilation of XMLProfileParserTests when building without security.
-
Improve IgnoreNonExistentSegment test for Windows.
-
Add missing thread includes.
-
Fix warning in Mac rewarding unnecessary lambda capture.
-
Use SO_EXCLUSIVEADDRUSE for Win32 unicast listening sockets.
-
Fix gtest discovery timeout.
-
Mark on_participant_discovery overload removal.
-
Fix uninitialized member in BuiltinAttributes class.
-
Fix set affinity directive for Android.
-
Fix Monitor Service types & test without security.
-
Fix TCP deadlock on channel reuse.
-
Fix DNS filter in CMakeLists file for tests.
-
Fix memory issues related to ciphering payload.
-
Fix a bad-free when receiving a malformed DATA_FRAG submessage.
-
Fix CVE-2023-50257.
-
Fix compilation of Fast DDS Python tests.
-
Fix data race on writer destruction while sending heartbeat.
-
Fix build with TLS, when SECURITY=OFF and NO_TLS=OFF.
-
-
CI fixes:
-
Fix colcon on github CI.
-
Better handling of trigger events in docs CI.
-
2.12.1:
This release includes the following improvements:
-
Support for linking with Fast CDR v1.
-
The period for the timer within the DisablePositiveACKsQosPolicy is now updatable.
-
Log error message upon receiver resource creation failure.
-
CI and repository improvements.
-
Simplify code in CDRMessage.
This release includes the following fixes:
-
Fast DDS bugfixes
-
Fix transient local durability for reliable readers using intra-process and data-sharing.
-
Use STL implementation of Timed/RecursiveTimedMutex when MSVC >= 19.36.
-
Fix updatability of immutable DataWriterQos.
-
Fix the clang build for clang 14.
-
Fix remote locators filtering when whitelist provided.
-
Fix Data Race when updating liveliness changed in WLP.
-
Add XML parser bit_bound bounds check.
-
Fix missing mandatory attribute check in XML parser struct type.
-
SHM transport: ignore non-existing segment on pop.
-
Fix: mac address overflow on Windows.
-
-
CI fixes:
-
Fix flow controllers unit tests compilation when using Fast CDR from thirdparty.
-
PubSubAsReliable test fix.
-
FileWatchTest fix for github windows CI.
-
2.12.0:
This release includes the following features:
-
New participant property to configure SHM transport metatraffic behavior.
-
Exposed custom payload pool on DDS DataWriter and DataReader declaration.
-
Dependencies
This release includes the following improvements:
-
fixed_stringcomparison operators. -
Remove mutex from TimedEventImpl (#3745, #3760)
-
Performance improvements on intraprocess and datasharing.
-
Improve Shared Memory resilience to crashing participants.
-
Improve scripts shebang portability.
-
Use
foonathan_memoryto reduce allocations in SharedMemManager.
This release includes the following fixes:
- Fast DDS bugfixes
-
Fixed XMLParser null-dereference when parsing log configuration.
-
Allow participant XML profiles with no
tag. -
Fix encapsulation format in Writer Liveliness Protocol.
-
Fix
DomainParticipant::register_remote_typereturn when negotiating type. -
Fix strict real-time feature when using Flow Controller feature.
-
Fix ParameterPropertyList increment operators.
-
Fix bad-free when receiving malformed DATA submessage.
-
Fix asymmetric whitelist matching.
-
Fix heap-use-after-free on XMLElementParser.
-
Fix History remove change return statement.
-
- CI fixes
-
Fix RemoteBuiltinEndpointHonoring blackbox test.
-
Improve repository workflows.
-
Use FASTRTPS_NO_LIB on unittest root folder.
-
Fix Windows workflow.
-
- Tools
-
Remove C++11 check in
fastdds-discovery-serverCLI tool.
-
- Examples
-
Fix HelloWorldDataSharing data type.
-
- Documentation
-
Doxygen typos.
-
- Repository
-
Remove 2.9.x as active branch.
-
- Non Tier 1 support
-
Fixed SHM in 32-bit architectures.
-
Fix warning on Win32 architecture.
-
See the full release notes for more details.
Prior versions:
2.11.2:
This release includes the following improvements:
- Improve Shared Memory resilience to crashing participants
- User configuration for Shared Memory metatraffic
- Performance improvements on intraprocess and data-sharing
This release includes the following bugfixes:
- Remove Mutex from TimedEventImpl
- Replace uint64_t by 8 in alignas specifier
- Fix XMLParser null-derefence in parseLogConfig
2.11.0:
Mind that, even though this release is API compatible with previous v2.x versions, it is NOT ABI compatible with previous versions. This means that applications upgrading Fast DDS to v2.11.0 will require recompilation, though not source code modification
It is also advisable to regenerate the type support from the IDL files using Fast DDS-Gen v2.5.1. Furthermore, if upgrading to v2.11.0, it is also recommended to upgrade Fast CDR to v1.1.0.
This release includes the following features:
-
Ignore every local endpoint within the DomainParticipant preventing local matching.
-
Extend DynamicDataHelper API providing a
printoverload withstd::ostreamas parameter. -
Static Discovery XSD Schema.
This release includes the following improvements:
- Fast DDS improvements
-
Assign minimum available participant ID to new participants.
-
Export symbols correctly on ContentFilteredTopic.
-
Improve content filter expression parameters check and verbosity.
-
Check TCP headers endianness.
-
Security module: distinguished names (DN) comparison.
-
- Fast DDS deprecation
-
DDS:Crypto:AES-GCM-GMAC configuration using Property Policy QoS (security vulnerability).
-
- CI improvements
-
Include BitmapRange unit tests.
-
Support for running some tests in parallel.
-
Windows workflow.
-
- Build system
-
Improve CMake target loading. Removal of
FASTDDS_STATICCMake option. -
Avoid auto-linkage using CMake.
-
- Dependencies
-
Upgrade internal type supports using latest Fast DDS-Gen release v2.5.1.
-
Upgrade Fast CDR submodule to v1.1.0.
-
- Examples
-
Admit XML configuration files in AdvanceConfigurationExample.
-
New Discovery Server example.
-
This release includes the following fixes:
- Fast DDS bugfixes
-
Fix crash when creating two participants with the same fixed participant ID.
-
Fix crash when calling
on_requested_deadline_missed()callback. -
Fix crashes caused by not capturing every Fast CDR exception.
-
Correctly resolve aliases in DDSSQLFilter.
-
Wait for log background thread initialization on the first queued entry.
-
Fix data race when accessing
WRITE_PARAM_DEFAULTstatic variable. -
Fix partition copy in QoS.
-
Fix Data-Sharing delivery when data_count is zero.
-
Fix API Fast DDS v2.10.0 API break calling correctly.
on_participant_discovery()callbacks. -
Security module: Honor Allow Unauthenticated Participants flag.
-
Fix concurrent access to
load_profiles(). -
Fix UBSan (Undefined Behavior Sanitizer) issues.
-
Improve Doxygen documentation about DomainParticipantListener discovery callbacks.
-
- XSD fixes
-
Set TransportDescriptor kind parameter as optional.
-
Correctly assign QoS to the proper endpoint.
-
Add missing tags.
-
- CI fixes
-
Fix null dereference in fuzzer code.
-
Limit Thread Sanitizer memory usage to prevent runner shutdown.
-
Use correct time unit in latency tests.
-
Run communication tests.
-
- Examples
-
Correct DDS entity deletion order.
-
- Installer generation
-
Add documentation fallback when the documentation tag is not found.
-
- Repository
-
Remove 2.1.x as active branch.
-
Remove 2.8.x as active branch.
-
- Non Tier 1 support
-
Fix build on MSVC 19.36.
-
Forward compatibility with Boost inter-process 1.74+.
-
Include missing header files required for compiling with GCC 13.
-
QNX build fixes.
-
Fix build issues in RPM systems.
-
2.10.1:
This release includes the following bugfixes and improvements:
- Bugfixes:
-
Fix repeated matched event notification.
-
Fix regression introduced by #3396.
-
Initial acknack backoff.
-
Fix regular expression in XML schema.
-
Correctly assign multicast port to multicast initial peers.
-
- CI Improvements:
-
Update runner and GCC version for Thread Sanitizer job.
-
2.10.0:
This release includes the following features besides many other improvements and bugfixes:
- Features:
- Secure Discovery Server. Now users can configure Security on Discovery Server deployments.
- New on_unacknowledged_sample_removed callback in DataWriterListener. This callback is useful in overloaded systems to detect any possible data loss.
- Improvements:
- Community supported platforms. Now QNX 7.1 build infrastructure is supported
- New Request-Reply example
- CI improvements, more checks and configurations available
- Update XSD schema: to an easier XML validation
- Contributions to increase repository quality
2.9.1:
This release includes the following bugfixes:
- Synchronization fixes:
- Fix deadlock in Writer Liveliness Protocol (WLP) using intraprocess.
- Fix data race in DomainParticipant::set_listener().
- Fix deadlock on TLS closure.
- Other fixes:
- Fix notification lost.
- Fix total_read_ to be consistent with Reader’s History after DataReader::get_first_untaken_info().
- Use shared pointers for internal singletons.
- Support CCache on Windows.
- Avoid null dereference on fuzzer.
- Other minor fixes and improvements.
2.9.0:
Mind that, even though this release is API compatible with previous v2.x versions, it is NOT ABI compatible with previous versions. This means that applications upgrading Fast DDS to v2.9.0 will require recompilation, though not source code modification.
This release includes the following features and improvements besides many others and various bugfixes:
- New log macros EPROSIMA_LOG_INFO, EPROSIMA_LOG_WARNING and EPROSIMA_LOG_ERROR.
- Add ENABLE_OLD_LOG_MACROS CMake option to support disabling the compilation of previous log macros.
- CI improvements:
- Add address sanitizer job for Fast DDS library.
- Add address sanitizer job for Discovery Server test suite.
- Upgrade Fast CDR submodule.
- Synchronization fixes:
- Fix deadlock when removing remote DomainParticipants by expired liveliness when using Security.
- Protect DomainParticipant::set_listener() avoiding null reference.
- Fix data race on WriterProxy::stop while TimedEvent is being triggered.
- Protect creation/destruction of Boost’s named_mutex.
- CI fixes:
- Fix Statistics Module test suite.
- Fix recurring data races in test suite.
- Fix thread sanitizer job keeping Ubuntu 20.04.
2.8.1:
- Synchronization fixes:
- Fix data races when creating DataWriters.
- Ensure
shared_muteximplementation is consistent throughout supported platforms.
- Address sanitizer fixes:
- Add ASAN CI job and
SANITIZECMake option. - Fixes reported by address sanitizer.
- Add ASAN CI job and
- Statistics module fixes:
- Increase statistics DataWriter history.
- Fix Statistics module CI.
- Install Statistics IDL file.
- Fix for building in old compilers.
- Fix core dumped in
delete_contained_entities().
...and others
2.8.0:
Mind that, even though this release is API compatible with previous v2.x versions, it is NOT ABI compatible with previous versions. This means that applications upgrading Fast DDS to v2.8.0 will require recompilation, though not source code modification.
This release includes the following features besides many other improvements and bugfixes:
- Full Ownership and OwnershipStrength QoS support
- External locators
- UDPv6 support for fast-discovery-server tool and ROS_DISCOVERY_SERVER
- XML configuration support for statistics DataWriters QoS
- SNI support
- Propagate PropertyQoS properties when explicitly set
- Add API to createRTPSWriter with a custom pool
- Add
std::string::compareAPI tofixed_string Get WAN address API in TCPv4 transport descriptors- Adding
DomainParticipantFactory::get_shared_instance()API
2.7.1:
- Checking STATIC EDP XML Files by means of DomainParticipantFactory::check_xml_static_discovery().
- ReadCondition implementation.
- Thread sanitizer CI.
- Overload get_unread_count().
- Improve read/take performance when using topic with a great number of keys.
- Improve rediscovery on lossy environments.
- New CMake option USE_THIRDPARTY_SHARED_MUTEX.
- Notify changes in bulk in RTPS readers.
- Fix Fast CDR submodule update to v1.0.24.
- Fix access to some pointers.
- Fixed acknowledgement in DataSharing.
- and other
2.7.0:
- Support for DDS SampleRejectedStatus API
- Support for DDS DataWriter methods:
- DataWriter::write_w_timestamp()
- DataWriter::register_instance_w_timestamp()
- DataWriter::unregister_instance_w_timestamp()
- DataWriter::dispose_w_timestamp()
- Support for DDS find_topic()
- Support for GCC 12
- Upgrade CMake minimum requirement to 3.16.3
- Add Windows DLL support to Dynamic Types API
- Deadlocks and data races
- Move deprecated OpenSSL cleanup function to match the right version
2.6.1:
- Support for writer side content filtering
- Support hexadecimal values on SQL filter
- Support for DataWriter::get_key_value()
- Support for DataReader::lookup_instance()
- Support for SampleLostStatus on DataReader
- Improved doxygen documentation
- Fixed several lock order inversion issues
- Fixed data race when closing UDP channels
- Fixed empty partition validation checks
- Fixed corner case with reliable writers and samples with a huge number of fragments
- Other minor fixes and improvements
2.6.0:
- Allow modifying remote server locators at runtime
- Add statistics physical information to DATA[p] using properties
- Content filter discovery information RTPS API
- Endpoint discovery RTPS API
- on_sample_lost RTPS API
- Transport layer API extension
- XML support for Fast DDS CLI
- New exchange format to reduce bandwidth in Static Discovery
- Support lowercase keywords on SQL filter
- Separate initialization and enabling of BuiltinProtocols
- Support for octet vectors on XML parser
- Update README and roadmap
- Fix recommended statistics DataReaderQos to enable backwards compatibility
- Fixes for supporting Python bindings in Windows platforms
- Fix publishing physical data on statistics topic
- etc.
2.5.1:
- ContentFilterTopic filtering at the DataReader side
- Release lifecycle
- XML parser fixes
- Discovery Server fixes
- Fix DataSharing sample validation
2.5.0:
- Support for PKCS#11 format URIs for private keys
- Added interfaces for content filter APIs
- Allow new network interfaces to be detected at runtime
- New API on DataWriter to wait for a specific instance to be acknowledged
- Added interfaces for concatenation of transports
- Allow XML profiles to be loaded from a string
- Allow disabling piggyback heartbeat on XML and DataWriter QoS
- New basic configuration example
2.4.1:
- Fixed several flaky tests
- Improved bandwidth usage of GAPs and HEARTBEATs
- Correctly implement delete_contained_entities
- Use native inter-process on Windows
- Improved performance of unregister_instance
- Improved OSS-fuzz integration
- Support for partitions on DataWriterQoS and DataReaderQoS
- Some documentation improvements
- Removed unused macro to avoid naming clashes
2.4.0:
- Conditions and Wait-sets implementation.
- Flow controllers.
- Configure Discovery Server locators using names.
- Modifying remote servers list at run time.
- Environment file override.
- Allow setting custom folder for data-sharing files.
- Allow setting persistence guid with static discovery.
- Check for NDEBUG in logInfo.
- Removed old unused CMake code.
- Fixed TLS behavior on TCP example.
- Prepare API for easy integration of python bindings.
- Improved statistics performance.
2.3.4:
- Support of googletest using colcon
- Network latency reports source participant
- Update Fast DDS Gen to v2.0.2
2.3.3:
- Added more durability kinds in Static Discovery xml parser
- Explicitly enable/disable data-sharing on performance tests
- Allow fully qualified name in TypeDescriptor
- Added missing DynamicData::get_union_id() method
- Change log severity in DiscoveryServer first announcement
- Several corrections to README
2.3.2:
- Statistics Module
- Update Asio submodule and avoid exporting Asio API
- Improve Windows installers
- Ease Google Fuzz integration
- Improve Doxygen documentation on lifetime of pointers created with RTPSDomain
- Update Fast CDR to v1.0.21
2.3.1:
- Added Fast DDS Statistics Module implementation
- Fixed alignment issues on generated code calculation of maximum serialized size
- Fixed calculation of data-sharing domain id
- Fixed issues on data-sharing with volatile writers
- Fixed build issues on old compilers
- Fixed some tests when the library is built without security
- Fixed and exposed pull mode on writers
- Fixed handling of –data_sharing on latency test
- Fixed calculation of memory pools sizes on debug builds
- Correctly update memory policy on writers and readers
2.3.0:
- Unique network flows
- Discovery super-client
- Statistics module API
- New flow controller API
- Static discovery configuration from raw string
- Added reception timestamp to SampleInfo
- Exposing get_unread_count on DataReader
- Data-sharing delivery internal refactor
- Additional metadata on persistence databases
- Refactor on ReturnCode_t to make it switch friendly
- Performance tests refactored to use DDS-PIM high-level API
- Receive const pointers on delete_xxx methods
- Discovery server improvements
- Made SOVERSION follow major.minor
2.2.0
- Data Sharing delivery (avoids transport encapsulation for localhost communications)
- Complete DDS-PIM high-level API declarations
- Extension APIs allowing zero-copy delivery (both intra-process and inter-process)
- Upgrade to Quality Level 1
2.1.0
- Support persistence for large data
- Added support for on_requested_incompatible_qos and on_offered_incompatible_qos
- SKIP_DEFAULT_XML environment variable
- Added FORCE value to THIRDPARTY cmake options
- New log consumer (StdOutErrConsumer)
- Added methods to get qos defined in XML Profile
- Support for persistence on TRANSIENT_LOCAL
- Internal refactor for intra-process performance boost
- Allow usage of foonathan/memory library built without debug tool
- Large data support on performance tests
2.0.2
- Improve QNX support
- Security improvements
- Fast DDS Quality Declaration (QL 2)
- Large traffic reduction when using Discovery Server (up to 85-90% for large deployments)
- Configuration of Clients of Discovery Server using an environment variable
- A CLI for Fast DDS:
- This can be used to launch a discovery server
- Clean SHM directories with one command
- Shared memory transport enabled by default
- Solved edge-case interoperability issue with CycloneDDS
- Add package.xml
2.0.1
- Fixed sending GAPs to late joiners
- Fixed asserting liveliness on data reception
- Avoid calling OpenSSL_add_all_algorithms() when not required
2.0.0
- Added support for register/unregister/dispose instance
- Added DDS compliant API. This new API exposes all the functionality of the Publisher-Subscriber Fast RTPS API adhering to the Data Distribution Service (DDS) version 1.4 specification
- Added Security Logging Plugin (contributed by Cannonical Ltd.)
- Bump to FastCDR v1.0.14
1.10.0:
- New built-in Shared memory Transport (SHM)
- Transport API refactored to support locator iterators
- Added subscriber API to retrieve info of first non-taken sample
- Added parameters to fully avoid dynamic allocations
- History of built-in endpoints can be configured
- Bump to FastCDR v1.0.13.
- Bump to Fast-RTPS-Gen v1.0.4.
- Require CMake 3.5 but use policies from 3.13
1.9.3:
- Participant discovery filtering flags.
- Intra-process delivery mechanism opt-in.
1.9.2:
- Multiple initial PDP announcements.
- Flag to avoid builtin multicast.
1.9.1:
- Fast-RTPS-Gen is now an independent project.
- Header eClock.h is now marked as deprecated.
1.9.0:
- Partial implementation of allocation QoS
- Implementation of Discovery Server
1.8.1:
- Implementation of Liveliness QoS
1.8.0:
- Implementation of IDL 4.2
- Implementation of Deadline QoS
- Implementation of Lifespan QoS
- Implementation of Disable positive acks QoS
- Secure sockets on TCP transport (TLS over TCP)
1.7.2:
- Bug fixing
1.7.1:
- Bug fixing
- Support for QNX
1.7.0:
- TCP Transport: Fast RTPS on WAN.
- Dynamic Topic Types: Define your topic data type at runtime.
- DDS Security 1.1 compliance: Latest DDS security specification.
1.6.0:
- Persistence: Saves your sent messages in a database for late use.
- Better Security: Finer Access Control.
- Performance improvements: Even better latency and jitter.
1.5.0:
- Easier Configuration of Fast RTPS entities through XML profiles.
- Improved Reliability protocol: Added piggybacked heartbeat support.
1.4.0:
- Security: Authentication and encryption support. DDS Security Specification compliant.
- Cpp 11 Support.
- Removed Boost Libraries Dependencies.
- Android Support
- Improved performance for large data.
1.3.1:
- New examples that illustrate how to tweak Fast RTPS towards different applications.
- Improved support for embedded Linux.
- Bug fixing.
1.3.0
- Unbound Arrays support: Now you can send variable size data arrays.
- Extended Fragmentation Configuration: It allows you to setup a Message/Fragment max size different to the standard 64Kb limit.
- Improved logging system: Get even more introspection about the status of your communications system.
- Static Discovery: Use XML to map your network and keep discovery traffic to a minimum.
- Stability and performance improvements: A new iteration of our built-in performance tests will make benchmarking easier for you.
- ReadTheDocs Support: We improved our documentation format and now our installation and user manuals are available online on ReadTheDocs.
Version 2.10 Stable
| Maturity | Stable |
| Released on | Monday, 21 August 2023 |
| Viewed | 792 times |
Release notes
2.10.6
Stable Release
- Free and Open Source: Apache 2.0 License
- Commercial Support Available.
Main Features
- High performance. See the performance benchmarks in the product page.
- Multi-Platform: Windows, Linux, Mac OS, iOS, Android, Raspbian.
- Easy to use: Hello world video tutorial available in the product page.
- Full DDS & RTPS compliance: OMG DDS1-4 & RTPS 2.2 Compliant. Best Effort and Reliable Communications in both Unicast and Multicast.
- DDS Security Support.
What is new:
This release includes the following fixes:
- Remove double // in some installation paths (#5254)
- Discard changes with big key-only payload and no key hash (#5275)
- Fix DataReaderHistory regression (#5333)
- Be less strict with parameter lengths (#5248)
- Check if
SHMtransport is disabled inLARGE_DATAmodes (#5378) - Fix issues in Dynamic Network Interfaces (#5390)
This release includes the following improvements:
- Add references to new nightly jobs per supported branch in README (#5299)
- Update commercial support section in readme (#5323)
- Modify help command of XML CLI tool (#5250)
Github CI management:
- Allow runing CI on external contributions (#5289)
PRs in merged order:
#5289, #5299, #5254, #5275, #5333, #5323, #5250, #5248, #5378, #5390, #5395
Prior versions:
2.10.5
This release includes the following features in an ABI compatible manner:
-
Add XML configuration for FlowControllerDescriptor
This release includes the following improvements:
-
Use
%*instead of loop in.batscripts -
Documentation improvements
-
Use absolute paths when loading XML files
-
Reduce tests flakiness
-
Add unsigned specification to literals
Github CI management:
-
Set fallback branch for
get_related_branch_from_repocorrectly -
Fix sanitizers CI test summary report
-
Run selected VS tool on Windows CI
-
Use token for CCache action
-
Refactor Fast DDS Ubuntu CI to include several tests
-
Avoid CCache in some Github workflows
-
Build profiling tests as alternate build in Ubuntu CI
-
Add Ubuntu weekly CI
-
Fix python version in sanitizers CI
-
Fix windows CI and add vanilla build step in Ubuntu CI
-
Use eProsima-CI action to install Qt
-
Update types regeneration script homing path
This release includes the following fixes:
-
Automatically unmatch remote participants on participant deletion
-
Only apply content filter to ALIVE changes
-
Fix liveliness state in a multiple reader - one writer scenario
-
Fix topic interference on
liveliness_changedstatus -
Fix DS servers not connecting due to ports logic
-
Fix issue with exclusive ownership and unordered samples
-
Fix SecurityManager memory issue
-
Correctly initialize
MatchingFailureMaskconstants to be used with thestd::bitsetAPI -
Fix data race in
TypeObjectFactory::get_instance -
Properly delete builtin statistics writers upon
delete_contained_entities() -
Fix secure simple participants with initial peers not matching over TCP
-
Fix access violations on XML parser detected by OSS-fuzz
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
2.10.4:
This release includes the following features in an ABI compatible manner:
-
TCP Client and Server Participant Decision Making.
-
Authentication Handshake Properties documentation.
-
New max_message_size property to limit output datagrams size.
This release includes the following improvements:
-
Return const reference in
get_log_resources. -
Include variety of terminate process signals handler in discovery server.
-
Check History QoS inconsistencies.
-
Make DataWriters always send the key hash on keyed topics.
-
LARGE_DATAParticipants logic with same listening ports. -
Effectively assert
AUTOMATIC/MANUAL_BY_PARTICIPANTliveliness. -
Improve checklist on PR template.
-
Allow processing of
AckNacksubmessages withcount == 0. -
Internal refactor on port handling.
-
Upgrade Fast CDR submodule to v1.0.28
TCP transport improvements:
-
TCP
non-blockingsend. -
Enabling multiple interfaces through whitelist in TCP servers.
-
Set real TCP
non-blocking-sendlimitation. -
Clean up TCP send resources on peer disconnection.
Github CI management:
-
Add macOS Github CI.
-
Avoid running GitHub CI if PR has conflicts.
-
Add Ubuntu Github CI.
-
Improve CI version management.
-
Pin CMake version and
vm.mmap_rnd_bitsin sanitizer workflows. -
Only run PRs CI when review is requested.
-
Refactor Github CI sanitizer related jobs.
-
Build
ShapesDemoon Ubuntu Github CI. -
Fix Python version and environment.
-
Add DNS entries to hosts files on Github workflows.
-
Build Fast DDS Python bindings in Fast DDS Docs Github CI job.
This release includes the following fixes:
-
Fix and refactor Windows Github CI.
-
Fix wrong log info messages on TCP.
-
Add a keyed fragmented change to the reader data instance only when complete.
-
Prevent index overflow and correctly assert the end iterator in DataSharing.
-
Fix the shared memory cleaning script.
-
Fix CI documentation workflow label triggering.
-
Add missing virtual destructor for
StatisticsAncillary. -
Migrate apt package installation action to
eProsima-CI. -
Add missing
TypeLookuplisteners. -
Fix doxygen docs warnings. Prepare for compiling with
Doxygen 1.10.0. -
Upgrade dependency version to last patch version in
.reposfile. -
Fix TCP reconnection after open logical port failure.
-
Avoid unhandled asio exceptions.
-
Fix
CVE-2024-28231. -
Fix data race on PDP.
-
Fix flaky Log tests.
-
Fix some flaky MacOS tests.
-
Fix hidden overloaded virtual methods.
-
Fix test filtering in CMake files.
-
Avoid first message loss in TCP.
-
Fix
CVE-2024-30258 / CVE-2024-30259. -
Enforce SHM ports open mode exclusions.
-
Force unlimited ResourceLimits if lower or equal to zero.
-
Removed warning in
ParameterList. -
Make
DataReader::get_first_untaken_info()coherent withread()/take(). -
Fix leak in
SecurityManager. -
Fix support for
@keyannotation inDynamicTypes. -
Fix leaks in XML parser for
DynamicTypes. -
Fix Discovery Server over TCP.
-
Handle errors when setting socket buffer sizes.
-
Fix
on_sample_lostnotification on best-effort readers for fragmented samples. -
Fix DataSharing QoS deserialization.
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
This release includes the following features in an ABI compatible manner:
-
Support
Autofill port(automatically set a port) for TCP Transport. -
Define a super client by environment variable
-
Support TCP Discovery server CLI and environment variable
-
Define methods (environment variable, rtps layer, xml) to configure transport scenarios
-
Custom pools on DDS layer (DataWriter and DataReader)
This release includes the following improvements:
-
Log warning upon receiver resource creation failure
-
Simplify code in
CDRMessage -
Backport workflows from master
-
Rerun failed tests with ctest option instead of colcon’s
-
Use foonathan memory manager for reducing allocations in
SharedMemManager.hpp -
Add CCache to all CI jobs
This release includes the following bugfixes:
-
Fix
RemoteBuiltinEndpointHonoringblackbox test -
Fix bad-free when receiving malformed DATA submessage
-
Fix clang warnings
-
Use STL implementation of
Timed/RecursiveTimedMutexwhenMSVC >= 19.36 -
Notify data-sharing listener at the end of a successful matching in intraprocess
-
Fix the clang build for clang 14
-
Fix
HelloWorldData-Sharing example idl -
Fix the behaviour of
disable_positive_acksperiod -
Fix
DomainParticipant::register_remote_typereturn when negotiating type -
Fix Data Race when updating liveliness changed in WLP
-
Fix TCP sender resources creation
-
Fix flow controllers unit tests compilation when using
Fast CDRfrom thirdparty -
Add XML parser
bit_boundbounds check -
Add tests for reconnection with same GUID
-
Fix Github Windows CI
-
Fix PubSubAsReliable test
-
Use
FASTRTPS_NO_LIBon unittest root folder -
Fix missing mandatory attribute check in XML parser struct type
-
Fix mac address overflow on windows
-
Use
SO_EXCLUSIVEADDRUSEfor Win32 unicast listening sockets -
Fix FileWatchTest for Github windows CI
-
Add missing thread include
-
Update TLS unit test certificates
-
Select correct .repos file on push events
-
Fix documentation CI branch
-
Fix TCP deadlock on channel reuse
-
Fix DNS filter in CMakeLists file for tests
-
Fix bad-free when receiving malformed DATA_FRAG submessage
-
Fix memory problem when ciphering payload
-
Fix build with TLS, but not security
-
Fix CVE-2023-50257
-
Fix data race on writer destruction while sending heartbeat
-
Fix comparison in
remove_from_pdp_reader_history -
Fix data race in PDPListener and SecurityManager
-
Update PR template to include check for PR description, title and backports
-
Fix std::move warning
-
Revert “TCP deadlock on channel reuse”
-
Fix max clash with Windows CI
-
Remove unnecessary TCP warning
-
Discard already processed samples on
PDPListener -
TCP unique client announced local port
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
See the full release notes for more details.
2.10.2:
This release includes the following improvements and bugfixes:
- Improvements:
- Fix Data-Sharing delivery when data_count is zero
- Improve performance of intraprocess plus data-sharing
- Improve content filter expression parameters checks and verbosity
- Improve validation on PID_PROPERTY_LIST deserialization
- Participant ignore local endpoints
- Pick smallest available participant ID for new participants
- Improve endpoint QoS XML tags
- Forward compatibility with boost interprocess 1.74+
- Cap Thread Sanitizer memory usage to prevent runner shutdown
- Allow participant XML profile with no
tag - Add unsupported note in API documentation to new ignore DomainParticipantListener callbacks
- Add documentation version fallback
- Bugfixes:
- Fixed long-standing reconnection issue on SHM transport
- Fix null dereference when fuzzing
- Fix segfault when creating two participant with same fixed id
- Fix UBSan (Undefined Behavior Sanitizer) issues
- Fix listener selection for on_requested_deadline_missed
- Fix build on msvc 19.36.32528
- Fix XML schema to set Transport descriptor kind as NOT mandatory
- Fix missing includes
- Fix overhead time unit
- Fix request reply example spelling typo
- Fix topic deletion after endpoint in examples
- Fix Data-Sharing delivery when data_count is zero
- Wait for log background thread initialization on the first queued entry
- Fix alias resolve in DDSSQLFilter
- Fix partition copy in QoS
- Fix StatelessWriter locators filtering
- Fix XMLParser null-dereference in parseLogConfig
- Fix encapsulation format in WLP
- Replace uint64_t by 8 in alignas specifier
- Capture all Fast CDR exceptions
- Security module: Honor allow_unauthenticated_participants flag
- Explicitly register type object in ContentFilteredTopicExample
- Avoid double definition of FASTDDS_ENFORCE_LOG_INFO
- Fix API Fast DDS v2.10.0 API break calling correctly on_participant_discovery callbacks
- Remove mutex from TimedEventImpl
2.10.1:
This release includes the following bugfixes and improvements:
- Bugfixes:
-
Fix repeated matched event notification.
-
Fix regression introduced by #3396.
-
Initial acknack backoff.
-
Fix regular expression in XML schema.
-
Correctly assign multicast port to multicast initial peers.
-
- CI Improvements:
-
Update runner and GCC version for Thread Sanitizer job.
-
2.10.0:
This release includes the following features besides many other improvements and bugfixes:
- Features:
- Secure Discovery Server. Now users can configure Security on Discovery Server deployments.
- New on_unacknowledged_sample_removed callback in DataWriterListener. This callback is useful in overloaded systems to detect any possible data loss.
- Improvements:
- Community supported platforms. Now QNX 7.1 build infrastructure is supported
- New Request-Reply example
- CI improvements, more checks and configurations available
- Update XSD schema: to an easier XML validation
- Contributions to increase repository quality
2.9.1:
This release includes the following bugfixes:
- Synchronization fixes:
- Fix deadlock in Writer Liveliness Protocol (WLP) using intraprocess.
- Fix data race in DomainParticipant::set_listener().
- Fix deadlock on TLS closure.
- Other fixes:
- Fix notification lost.
- Fix total_read_ to be consistent with Reader’s History after DataReader::get_first_untaken_info().
- Use shared pointers for internal singletons.
- Support CCache on Windows.
- Avoid null dereference on fuzzer.
- Other minor fixes and improvements.
2.9.0:
Mind that, even though this release is API compatible with previous v2.x versions, it is NOT ABI compatible with previous versions. This means that applications upgrading Fast DDS to v2.9.0 will require recompilation, though not source code modification.
This release includes the following features and improvements besides many others and various bugfixes:
- New log macros EPROSIMA_LOG_INFO, EPROSIMA_LOG_WARNING and EPROSIMA_LOG_ERROR.
- Add ENABLE_OLD_LOG_MACROS CMake option to support disabling the compilation of previous log macros.
- CI improvements:
- Add address sanitizer job for Fast DDS library.
- Add address sanitizer job for Discovery Server test suite.
- Upgrade Fast CDR submodule.
- Synchronization fixes:
- Fix deadlock when removing remote DomainParticipants by expired liveliness when using Security.
- Protect DomainParticipant::set_listener() avoiding null reference.
- Fix data race on WriterProxy::stop while TimedEvent is being triggered.
- Protect creation/destruction of Boost’s named_mutex.
- CI fixes:
- Fix Statistics Module test suite.
- Fix recurring data races in test suite.
- Fix thread sanitizer job keeping Ubuntu 20.04.
2.8.1:
- Synchronization fixes:
- Fix data races when creating DataWriters.
- Ensure
shared_muteximplementation is consistent throughout supported platforms.
- Address sanitizer fixes:
- Add ASAN CI job and
SANITIZECMake option. - Fixes reported by address sanitizer.
- Add ASAN CI job and
- Statistics module fixes:
- Increase statistics DataWriter history.
- Fix Statistics module CI.
- Install Statistics IDL file.
- Fix for building in old compilers.
- Fix core dumped in
delete_contained_entities().
...and others
2.8.0:
Mind that, even though this release is API compatible with previous v2.x versions, it is NOT ABI compatible with previous versions. This means that applications upgrading Fast DDS to v2.8.0 will require recompilation, though not source code modification.
This release includes the following features besides many other improvements and bugfixes:
- Full Ownership and OwnershipStrength QoS support
- External locators
- UDPv6 support for fast-discovery-server tool and ROS_DISCOVERY_SERVER
- XML configuration support for statistics DataWriters QoS
- SNI support
- Propagate PropertyQoS properties when explicitly set
- Add API to createRTPSWriter with a custom pool
- Add
std::string::compareAPI tofixed_string Get WAN address API in TCPv4 transport descriptors- Adding
DomainParticipantFactory::get_shared_instance()API
2.7.1:
- Checking STATIC EDP XML Files by means of DomainParticipantFactory::check_xml_static_discovery().
- ReadCondition implementation.
- Thread sanitizer CI.
- Overload get_unread_count().
- Improve read/take performance when using topic with a great number of keys.
- Improve rediscovery on lossy environments.
- New CMake option USE_THIRDPARTY_SHARED_MUTEX.
- Notify changes in bulk in RTPS readers.
- Fix Fast CDR submodule update to v1.0.24.
- Fix access to some pointers.
- Fixed acknowledgement in DataSharing.
- and other
2.7.0:
- Support for DDS SampleRejectedStatus API
- Support for DDS DataWriter methods:
- DataWriter::write_w_timestamp()
- DataWriter::register_instance_w_timestamp()
- DataWriter::unregister_instance_w_timestamp()
- DataWriter::dispose_w_timestamp()
- Support for DDS find_topic()
- Support for GCC 12
- Upgrade CMake minimum requirement to 3.16.3
- Add Windows DLL support to Dynamic Types API
- Deadlocks and data races
- Move deprecated OpenSSL cleanup function to match the right version
2.6.1:
- Support for writer side content filtering
- Support hexadecimal values on SQL filter
- Support for DataWriter::get_key_value()
- Support for DataReader::lookup_instance()
- Support for SampleLostStatus on DataReader
- Improved doxygen documentation
- Fixed several lock order inversion issues
- Fixed data race when closing UDP channels
- Fixed empty partition validation checks
- Fixed corner case with reliable writers and samples with a huge number of fragments
- Other minor fixes and improvements
2.6.0:
- Allow modifying remote server locators at runtime
- Add statistics physical information to DATA[p] using properties
- Content filter discovery information RTPS API
- Endpoint discovery RTPS API
- on_sample_lost RTPS API
- Transport layer API extension
- XML support for Fast DDS CLI
- New exchange format to reduce bandwidth in Static Discovery
- Support lowercase keywords on SQL filter
- Separate initialization and enabling of BuiltinProtocols
- Support for octet vectors on XML parser
- Update README and roadmap
- Fix recommended statistics DataReaderQos to enable backwards compatibility
- Fixes for supporting Python bindings in Windows platforms
- Fix publishing physical data on statistics topic
- etc.
2.5.1:
- ContentFilterTopic filtering at the DataReader side
- Release lifecycle
- XML parser fixes
- Discovery Server fixes
- Fix DataSharing sample validation
2.5.0:
- Support for PKCS#11 format URIs for private keys
- Added interfaces for content filter APIs
- Allow new network interfaces to be detected at runtime
- New API on DataWriter to wait for a specific instance to be acknowledged
- Added interfaces for concatenation of transports
- Allow XML profiles to be loaded from a string
- Allow disabling piggyback heartbeat on XML and DataWriter QoS
- New basic configuration example
2.4.1:
- Fixed several flaky tests
- Improved bandwidth usage of GAPs and HEARTBEATs
- Correctly implement delete_contained_entities
- Use native inter-process on Windows
- Improved performance of unregister_instance
- Improved OSS-fuzz integration
- Support for partitions on DataWriterQoS and DataReaderQoS
- Some documentation improvements
- Removed unused macro to avoid naming clashes
2.4.0:
- Conditions and Wait-sets implementation.
- Flow controllers.
- Configure Discovery Server locators using names.
- Modifying remote servers list at run time.
- Environment file override.
- Allow setting custom folder for data-sharing files.
- Allow setting persistence guid with static discovery.
- Check for NDEBUG in logInfo.
- Removed old unused CMake code.
- Fixed TLS behavior on TCP example.
- Prepare API for easy integration of python bindings.
- Improved statistics performance.
2.3.4:
- Support of googletest using colcon
- Network latency reports source participant
- Update Fast DDS Gen to v2.0.2
2.3.3:
- Added more durability kinds in Static Discovery xml parser
- Explicitly enable/disable data-sharing on performance tests
- Allow fully qualified name in TypeDescriptor
- Added missing DynamicData::get_union_id() method
- Change log severity in DiscoveryServer first announcement
- Several corrections to README
2.3.2:
- Statistics Module
- Update Asio submodule and avoid exporting Asio API
- Improve Windows installers
- Ease Google Fuzz integration
- Improve Doxygen documentation on lifetime of pointers created with RTPSDomain
- Update Fast CDR to v1.0.21
2.3.1:
- Added Fast DDS Statistics Module implementation
- Fixed alignment issues on generated code calculation of maximum serialized size
- Fixed calculation of data-sharing domain id
- Fixed issues on data-sharing with volatile writers
- Fixed build issues on old compilers
- Fixed some tests when the library is built without security
- Fixed and exposed pull mode on writers
- Fixed handling of –data_sharing on latency test
- Fixed calculation of memory pools sizes on debug builds
- Correctly update memory policy on writers and readers
2.3.0:
- Unique network flows
- Discovery super-client
- Statistics module API
- New flow controller API
- Static discovery configuration from raw string
- Added reception timestamp to SampleInfo
- Exposing get_unread_count on DataReader
- Data-sharing delivery internal refactor
- Additional metadata on persistence databases
- Refactor on ReturnCode_t to make it switch friendly
- Performance tests refactored to use DDS-PIM high-level API
- Receive const pointers on delete_xxx methods
- Discovery server improvements
- Made SOVERSION follow major.minor
2.2.0
- Data Sharing delivery (avoids transport encapsulation for localhost communications)
- Complete DDS-PIM high-level API declarations
- Extension APIs allowing zero-copy delivery (both intra-process and inter-process)
- Upgrade to Quality Level 1
2.1.0
- Support persistence for large data
- Added support for on_requested_incompatible_qos and on_offered_incompatible_qos
- SKIP_DEFAULT_XML environment variable
- Added FORCE value to THIRDPARTY cmake options
- New log consumer (StdOutErrConsumer)
- Added methods to get qos defined in XML Profile
- Support for persistence on TRANSIENT_LOCAL
- Internal refactor for intra-process performance boost
- Allow usage of foonathan/memory library built without debug tool
- Large data support on performance tests
2.0.2
- Improve QNX support
- Security improvements
- Fast DDS Quality Declaration (QL 2)
- Large traffic reduction when using Discovery Server (up to 85-90% for large deployments)
- Configuration of Clients of Discovery Server using an environment variable
- A CLI for Fast DDS:
- This can be used to launch a discovery server
- Clean SHM directories with one command
- Shared memory transport enabled by default
- Solved edge-case interoperability issue with CycloneDDS
- Add package.xml
2.0.1
- Fixed sending GAPs to late joiners
- Fixed asserting liveliness on data reception
- Avoid calling OpenSSL_add_all_algorithms() when not required
2.0.0
- Added support for register/unregister/dispose instance
- Added DDS compliant API. This new API exposes all the functionality of the Publisher-Subscriber Fast RTPS API adhering to the Data Distribution Service (DDS) version 1.4 specification
- Added Security Logging Plugin (contributed by Cannonical Ltd.)
- Bump to FastCDR v1.0.14
1.10.0:
- New built-in Shared memory Transport (SHM)
- Transport API refactored to support locator iterators
- Added subscriber API to retrieve info of first non-taken sample
- Added parameters to fully avoid dynamic allocations
- History of built-in endpoints can be configured
- Bump to FastCDR v1.0.13.
- Bump to Fast-RTPS-Gen v1.0.4.
- Require CMake 3.5 but use policies from 3.13
1.9.3:
- Participant discovery filtering flags.
- Intra-process delivery mechanism opt-in.
1.9.2:
- Multiple initial PDP announcements.
- Flag to avoid builtin multicast.
1.9.1:
- Fast-RTPS-Gen is now an independent project.
- Header eClock.h is now marked as deprecated.
1.9.0:
- Partial implementation of allocation QoS
- Implementation of Discovery Server
1.8.1:
- Implementation of Liveliness QoS
1.8.0:
- Implementation of IDL 4.2
- Implementation of Deadline QoS
- Implementation of Lifespan QoS
- Implementation of Disable positive acks QoS
- Secure sockets on TCP transport (TLS over TCP)
1.7.2:
- Bug fixing
1.7.1:
- Bug fixing
- Support for QNX
1.7.0:
- TCP Transport: Fast RTPS on WAN.
- Dynamic Topic Types: Define your topic data type at runtime.
- DDS Security 1.1 compliance: Latest DDS security specification.
1.6.0:
- Persistence: Saves your sent messages in a database for late use.
- Better Security: Finer Access Control.
- Performance improvements: Even better latency and jitter.
1.5.0:
- Easier Configuration of Fast RTPS entities through XML profiles.
- Improved Reliability protocol: Added piggybacked heartbeat support.
1.4.0:
- Security: Authentication and encryption support. DDS Security Specification compliant.
- Cpp 11 Support.
- Removed Boost Libraries Dependencies.
- Android Support
- Improved performance for large data.
1.3.1:
- New examples that illustrate how to tweak Fast RTPS towards different applications.
- Improved support for embedded Linux.
- Bug fixing.
1.3.0
- Unbound Arrays support: Now you can send variable size data arrays.
- Extended Fragmentation Configuration: It allows you to setup a Message/Fragment max size different to the standard 64Kb limit.
- Improved logging system: Get even more introspection about the status of your communications system.
- Static Discovery: Use XML to map your network and keep discovery traffic to a minimum.
- Stability and performance improvements: A new iteration of our built-in performance tests will make benchmarking easier for you.
- ReadTheDocs Support: We improved our documentation format and now our installation and user manuals are available online on ReadTheDocs.
Version 2.6 Stable
| Maturity | Stable |
| Released on | Tuesday, 22 August 2023 |
| Viewed | 322 times |
Release notes
2.6.7 Stable Release
- Free and Open Source: Apache 2.0 License
- Commercial Support Available.
Main Features
- High performance. See the performance benchmarks in the product page.
- Multi-Platform: Windows, Linux, Mac OS, iOS, Android, Raspbian.
- Easy to use: Hello world video tutorial available in the product page.
- Full DDS & RTPS compliance: OMG DDS1-4 & RTPS 2.2 Compliant. Best Effort and Reliable Communications in both Unicast and Multicast.
- DDS Security Support.
What is new:
This release includes the following features:
-
Support
Autofill port(automatically set a port) for TCP Transport. -
Define a super client by environment variable
-
Support TCP Discovery server CLI and environment variable
-
Define methods (environment variable, rtps layer, xml) to configure transport scenarios
This release includes the following improvements:
-
Log warning message upon receiver resource creation failure.
-
Add tests for reconnection with same GUID
-
Use foonathan memory manager for reducing allocations in
SharedMemManager.hpp -
Simplify code in
CDRMessage. -
Rerun failed tests with ctest option instead of colcon’s.
-
Several improvements on CI jobs.
-
Upgrade CMake minimum requirement to 3.16.3
-
Update PR checklist template. Backports and Description
This release includes the following bugfixes:
-
Fix
DomainParticipant::register_remote_typereturn when negotiating type. -
Fix
RemoteBuiltinEndpointHonoringblackbox test. -
Allow participant profiles with no rtps tag.
-
Fix bad-free when receiving malformed DATA submessage.
-
Fix clang warnings
-
Use STL implementation of
Timed/RecursiveTimedMutexwhenMSVC >= 19.36. -
Fix encapsulation format in WLP.
-
Fix the clang build for clang 14.
-
Notify data-sharing listener at the end of a successful matching in intraprocess.
-
Updatable disable_positive_acks period.
-
Fix Data Race when updating liveliness changed in WLP.
-
Fix TCP sender resources creation.
-
Fix flow controllers unit tests compilation when using Fast CDR from thirdparty.
-
Add XML parser bit_bound bounds check.
-
Use
FASTRTPS_NO_LIBon unittest root folder. -
Use
SO_EXCLUSIVEADDRUSEfor Win32 unicast listening sockets. -
Fix mac address overflow on windows.
-
Fix
PubSubAsReliabletest. -
Fix
FileWatchTest. -
Add missing thread include.
-
Fix missing mandatory attribute check in XML parser struct type.
-
Better handling of trigger events in docs CI.
-
Fix memory problem when ciphering payload
-
Select correct .repos file on push events
-
Update TLS unit test certificates
-
Fix bad-free when receiving malformed DATA_FRAG submessage
-
Fix data race on writer destruction while sending heartbeat
-
Fix DiscoveryServer list access deadlock
-
Fix c++11 support for fast discovery server tool
-
Fix CVE-2023-50257
-
Fix std::move warning
-
Fix Github Windows CI
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
See the full release notes for more details.
Prior versions:
2.6.6:
This release includes the following improvements:
- Improve validation on PID_PROPERTY_LIST deserialization.
- Improved CPU usage of timed events thread.
- Improved performance on intraprocess + data-sharing.
- Explicitly register type object in ContentFilteredTopicExample.
- Improve installer generation with documentation version fallback.
- Improve content filter expression parameters checks and verbosity.
This release includes the following bugfixes:
- Fixed long-standing reconnection issues on SHM transport.
- Correctly resolve alias in DDSQLFilter.
- Fixed partition copy in QoS.
- Added length checks to prevent nullptr memcpy calls.
- Fixed XMLParser null-dereference when parsing log configuration.
- Fixed SHM in 32-bit architectures.
- Added missing cstdint include.
- Avoid double definition of FASTDDS_ENFORCE_LOG_INFO.
- Fixed statistics data_count with data-sharing.
2.6.1:
This release includes the following improvements:
- Support for writer side content filtering
- Support hexadecimal values on SQL filter
- Support for DataWriter::get_key_value()
- Support for DataReader::lookup_instance()
- Support for SampleLostStatus on DataReader
- Improved doxygen documentation
This release includes the following bugfixes:
- Fixed several lock order inversion issues
- Fixed data race when closing UDP channels
- Fixed empty partition validation checks
- Fixed corner case with reliable writers and samples with a huge number of fragments
- Other minor fixes and improvements
2.6.0:
- Allow modifying remote server locators at runtime
- Add statistics physical information to DATA[p] using properties
- Content filter discovery information RTPS API
- Endpoint discovery RTPS API
- on_sample_lost RTPS API
- Transport layer API extension
- XML support for Fast DDS CLI
- New exchange format to reduce bandwidth in Static Discovery
- Support lowercase keywords on SQL filter
- Separate initialization and enabling of BuiltinProtocols
- Support for octet vectors on XML parser
- Update README and roadmap
- Fix recommended statistics DataReaderQos to enable backwards compatibility
- Fixes for supporting Python bindings in Windows platforms
- Fix publishing physical data on statistics topic
- etc.
2.5.1:
- ContentFilterTopic filtering at the DataReader side
- Release lifecycle
- XML parser fixes
- Discovery Server fixes
- Fix DataSharing sample validation
2.5.0:
- Support for PKCS#11 format URIs for private keys
- Added interfaces for content filter APIs
- Allow new network interfaces to be detected at runtime
- New API on DataWriter to wait for a specific instance to be acknowledged
- Added interfaces for concatenation of transports
- Allow XML profiles to be loaded from a string
- Allow disabling piggyback heartbeat on XML and DataWriter QoS
- New basic configuration example
2.4.1:
- Fixed several flaky tests
- Improved bandwidth usage of GAPs and HEARTBEATs
- Correctly implement delete_contained_entities
- Use native inter-process on Windows
- Improved performance of unregister_instance
- Improved OSS-fuzz integration
- Support for partitions on DataWriterQoS and DataReaderQoS
- Some documentation improvements
- Removed unused macro to avoid naming clashes
2.4.0:
- Conditions and Wait-sets implementation.
- Flow controllers.
- Configure Discovery Server locators using names.
- Modifying remote servers list at run time.
- Environment file override.
- Allow setting custom folder for data-sharing files.
- Allow setting persistence guid with static discovery.
- Check for NDEBUG in logInfo.
- Removed old unused CMake code.
- Fixed TLS behavior on TCP example.
- Prepare API for easy integration of python bindings.
- Improved statistics performance.
2.3.4:
- Support of googletest using colcon
- Network latency reports source participant
- Update Fast DDS Gen to v2.0.2
2.3.3:
- Added more durability kinds in Static Discovery xml parser
- Explicitly enable/disable data-sharing on performance tests
- Allow fully qualified name in TypeDescriptor
- Added missing DynamicData::get_union_id() method
- Change log severity in DiscoveryServer first announcement
- Several corrections to README
2.3.2:
- Statistics Module
- Update Asio submodule and avoid exporting Asio API
- Improve Windows installers
- Ease Google Fuzz integration
- Improve Doxygen documentation on lifetime of pointers created with RTPSDomain
- Update Fast CDR to v1.0.21
2.3.1:
- Added Fast DDS Statistics Module implementation
- Fixed alignment issues on generated code calculation of maximum serialized size
- Fixed calculation of data-sharing domain id
- Fixed issues on data-sharing with volatile writers
- Fixed build issues on old compilers
- Fixed some tests when the library is built without security
- Fixed and exposed pull mode on writers
- Fixed handling of –data_sharing on latency test
- Fixed calculation of memory pools sizes on debug builds
- Correctly update memory policy on writers and readers
2.3.0:
- Unique network flows
- Discovery super-client
- Statistics module API
- New flow controller API
- Static discovery configuration from raw string
- Added reception timestamp to SampleInfo
- Exposing get_unread_count on DataReader
- Data-sharing delivery internal refactor
- Additional metadata on persistence databases
- Refactor on ReturnCode_t to make it switch friendly
- Performance tests refactored to use DDS-PIM high-level API
- Receive const pointers on delete_xxx methods
- Discovery server improvements
- Made SOVERSION follow major.minor
2.2.0
- Data Sharing delivery (avoids transport encapsulation for localhost communications)
- Complete DDS-PIM high-level API declarations
- Extension APIs allowing zero-copy delivery (both intra-process and inter-process)
- Upgrade to Quality Level 1
2.1.0
- Support persistence for large data
- Added support for on_requested_incompatible_qos and on_offered_incompatible_qos
- SKIP_DEFAULT_XML environment variable
- Added FORCE value to THIRDPARTY cmake options
- New log consumer (StdOutErrConsumer)
- Added methods to get qos defined in XML Profile
- Support for persistence on TRANSIENT_LOCAL
- Internal refactor for intra-process performance boost
- Allow usage of foonathan/memory library built without debug tool
- Large data support on performance tests
2.0.2
- Improve QNX support
- Security improvements
- Fast DDS Quality Declaration (QL 2)
- Large traffic reduction when using Discovery Server (up to 85-90% for large deployments)
- Configuration of Clients of Discovery Server using an environment variable
- A CLI for Fast DDS:
- This can be used to launch a discovery server
- Clean SHM directories with one command
- Shared memory transport enabled by default
- Solved edge-case interoperability issue with CycloneDDS
- Add package.xml
2.0.1
- Fixed sending GAPs to late joiners
- Fixed asserting liveliness on data reception
- Avoid calling OpenSSL_add_all_algorithms() when not required
2.0.0
- Added support for register/unregister/dispose instance
- Added DDS compliant API. This new API exposes all the functionality of the Publisher-Subscriber Fast RTPS API adhering to the Data Distribution Service (DDS) version 1.4 specification
- Added Security Logging Plugin (contributed by Cannonical Ltd.)
- Bump to FastCDR v1.0.14
1.10.0:
- New built-in Shared memory Transport (SHM)
- Transport API refactored to support locator iterators
- Added subscriber API to retrieve info of first non-taken sample
- Added parameters to fully avoid dynamic allocations
- History of built-in endpoints can be configured
- Bump to FastCDR v1.0.13.
- Bump to Fast-RTPS-Gen v1.0.4.
- Require CMake 3.5 but use policies from 3.13
1.9.3:
- Participant discovery filtering flags.
- Intra-process delivery mechanism opt-in.
1.9.2:
- Multiple initial PDP announcements.
- Flag to avoid builtin multicast.
1.9.1:
- Fast-RTPS-Gen is now an independent project.
- Header eClock.h is now marked as deprecated.
1.9.0:
- Partial implementation of allocation QoS
- Implementation of Discovery Server
1.8.1:
- Implementation of Liveliness QoS
1.8.0:
- Implementation of IDL 4.2
- Implementation of Deadline QoS
- Implementation of Lifespan QoS
- Implementation of Disable positive acks QoS
- Secure sockets on TCP transport (TLS over TCP)
1.7.2:
- Bug fixing
1.7.1:
- Bug fixing
- Support for QNX
1.7.0:
- TCP Transport: Fast RTPS on WAN.
- Dynamic Topic Types: Define your topic data type at runtime.
- DDS Security 1.1 compliance: Latest DDS security specification.
1.6.0:
- Persistence: Saves your sent messages in a database for late use.
- Better Security: Finer Access Control.
- Performance improvements: Even better latency and jitter.
1.5.0:
- Easier Configuration of Fast RTPS entities through XML profiles.
- Improved Reliability protocol: Added piggybacked heartbeat support.
1.4.0:
- Security: Authentication and encryption support. DDS Security Specification compliant.
- Cpp 11 Support.
- Removed Boost Libraries Dependencies.
- Android Support
- Improved performance for large data.
1.3.1:
- New examples that illustrate how to tweak Fast RTPS towards different applications.
- Improved support for embedded Linux.
- Bug fixing.
1.3.0
- Unbound Arrays support: Now you can send variable size data arrays.
- Extended Fragmentation Configuration: It allows you to setup a Message/Fragment max size different to the standard 64Kb limit.
- Improved logging system: Get even more introspection about the status of your communications system.
- Static Discovery: Use XML to map your network and keep discovery traffic to a minimum.
- Stability and performance improvements: A new iteration of our built-in performance tests will make benchmarking easier for you.
- ReadTheDocs Support: We improved our documentation format and now our installation and user manuals are available online on ReadTheDocs.

