Previous end-of-life versions

Version 2.12 (EOL)

Version 2.12.2 (EOL)

This release includes the following features:

  1. Methods to configure transport scenarios

  2. Support Autofill port (automatically set the port) for TCP Transport

  3. Support TCP for Discovery Server CLI and environment variable

  4. Define a super client by environment variable

  5. Change serialize function default behaviour to omit the data representation

  6. LARGE_DATA Participants logic with same listening ports

  7. TCP Client&Server Participant Decision-Making logic

  8. Expose Authentication Handshake Properties

  9. Enabling multiple interfaces through whitelist in TCP servers

  10. Add macOS and Ubuntu Github CI

This release includes the following improvements:

  1. Improve environment variable substitution algorithm

  2. Upgrade dependency version to last patch version in .repos file

  3. Rerun failed tests with ctest option instead of colcon’s

  4. Remove unnecessary TCP warning

  5. Update PR template to include check for PR description, title and backports

  6. Improvements in GitHub CI

This release includes the following fixes:

  1. Fix TCP reconnection after open logical port failure

  2. TCP unique client announced local port

  3. TCP non-blocking send

  4. Fix wrong log info messages on TCP

  5. Improve IgnoreNonExistentSegment test

  6. Use SO_EXCLUSIVEADDRUSE for Win32 unicast listening sockets

  7. Fix DNS filter in CMakeLists file for tests

  8. Fix bad-free when receiving malformed DATA_FRAG submessage

  9. Fix memory problem related to ciphering payload

  10. Fix CVE-2023-50257

  11. Fix build with TLS, but not security

  12. Fix comparison in remove_from_pdp_reader_history

  13. Fix data race in PDPListener and SecurityManager

  14. Discard already processed samples on PDPListener

  15. Fix .repos versions

  16. Fix the shared memory cleaning script

  17. Fix data race on writer destruction while sending heartbeat

  18. Return const reference to the shared pointer instead of a copy in get_log_resources

  19. Ignore 0x8007 if coming from other vendor

  20. Fix Doxygen docs warnings and prepare for compiling with Doxygen 1.10.0

  21. Include variety of terminate process signals handler in discovery server

  22. Add missing TypeLookup listeners

  23. Add a keyed fragmented change to the reader data instance only when its completed

  24. Fix data race on PDP

  25. Check History QoS inconsistencies

  26. Make DataWriters always send the key hash on keyed topics

  27. Prevent index overflow and correctly assert the end iterator in DataSharing

  28. Fix uninitialized member in RTPSParticipantAttributes

  29. Remove unnecessary std::move in FileWatch.hpp causing warning

  30. Add missing thread include

  31. Add missing virtual destructor for StatisticsAncillary

  32. Protect asio exception

  33. TCPSendResources cleanup

  34. Downgrade CMake version to 3.20

Version 2.12.1 (EOL)

This release includes the following improvements:

  1. Support for linking with Fast CDR v1.

  2. The period for the timer within the DisablePositiveACKsQosPolicy is now updatable.

  3. Log error message upon receiver resource creation failure.

  4. CI and repository improvements.

  5. Simplify code in CDRMessage.

This release includes the following fixes:

  1. Fast DDS bugfixes

    1. Fix transient local durability for reliable readers using intra-process and data-sharing.

    2. Use STL implementation of Timed/RecursiveTimedMutex when MSVC >= 19.36.

    3. Fix updatability of immutable DataWriterQos.

    4. Fix the clang build for clang 14.

    5. Fix remote locators filtering when whitelist provided.

    6. Fix Data Race when updating liveliness changed in WLP.

    7. Add XML parser bit_bound bounds check.

    8. Fix missing mandatory attribute check in XML parser struct type.

    9. SHM transport: ignore non-existing segment on pop.

    10. Fix: mac address overflow on Windows.

  2. CI fixes:

    1. Fix flow controllers unit tests compilation when using Fast CDR from thirdparty.

    2. PubSubAsReliable test fix.

    3. FileWatchTest fix for github windows CI.

Note

When upgrading to version 2.12.1 it is advisable to regenerate generated source from IDL files using Fast DDS-Gen v3.1.0.

Version 2.12.0 (EOL)

Note

This release upgrades the following Fast DDS dependencies:

Please, read also the release notes of Fast DDS-Gen v3.0.0 to be aware of every possible break in the application code.

As Fast DDS dependencies have been upgraded to new major releases, depending on the types defined in the IDL files, it might be required to modify the user application source code besides recompiling it (more information can be found in the corresponding release notes).

Note

There is a minor API break with previous v2.x versions: MEMBER_INVALID identifier was declared using #define. In order to prevent polluting the user workspace, it has been transformed into a constexpr within eprosima::fastrtps::types namespace.

This release includes the following features:

  1. New participant property to configure SHM transport metatraffic behavior.

  2. Exposed custom payload pool on DDS DataWriter and DataReader declaration.

    1. Feature example.

  3. Processing environment variables in XML text.

  4. Dependencies

    1. Upgrade internal type supports using latest Fast DDS-Gen release v3.0.0. This release introduces the following features:

      1. Support for @optional builtin annotation <optional_members>.

      2. Support for @extensibility builtin annotation <extensibility>.

    2. Upgrade Fast CDR submodule to v2.0.0 introducing XCDR encoding version 2.

This release includes the following improvements:

  1. fixed_string comparison operators.

  2. Remove mutex from TimedEventImpl (#3745, #3760)

  3. Performance improvements on intraprocess and datasharing.

  4. Improve Shared Memory resilience to crashing participants.

  5. Improve scripts shebang portability.

  6. Use foonathan_memory to reduce allocations in SharedMemManager.

This release includes the following fixes:

  1. Fast DDS bugfixes
    1. Fixed XMLParser null-dereference when parsing log configuration.

    2. Allow participant XML profiles with no <rtps> tag.

    3. Fix encapsulation format in Writer Liveliness Protocol.

    4. Fix DomainParticipant::register_remote_type return when negotiating type.

    5. Fix strict real-time feature when using Flow Controller feature.

    6. Fix ParameterPropertyList increment operators.

    7. Fix bad-free when receiving malformed DATA submessage.

    8. Fix asymmetric whitelist matching.

    9. Fix heap-use-after-free on XMLElementParser.

    10. Fix History remove change return statement.

  2. CI fixes
    1. Fix RemoteBuiltinEndpointHonoring blackbox test.

    2. Improve repository workflows.

    3. Use FASTRTPS_NO_LIB on unittest root folder.

    4. Fix Windows workflow.

  3. Tools
    1. Remove C++11 check in fastdds-discovery-server CLI tool.

  4. Examples
    1. Fix HelloWorldDataSharing data type.

  5. Documentation
    1. Doxygen typos.

  6. Repository
    1. Remove 2.9.x as active branch.

  7. Non Tier 1 support
    1. Fixed SHM in 32-bit architectures.

    2. Fix warning on Win32 architecture.

Note

Upgrading to version 2.12.0 requires to regenerate generated source from IDL files using Fast DDS-Gen v3.0.1.

Version 2.11 (EOL)

Version 2.11.3 (EOL)

This release includes the following features in an ABI compatible manner:

  1. Support Autofill port (automatically set a port) for TCP Transport.

  2. Define a super client by environment variable

  3. Support TCP Discovery server CLI and environment variable

  4. Define methods (environment variable, rtps layer, xml) to configure transport scenarios

  5. Custom pools on DDS layer (DataWriter and DataReader)

This release includes the following improvements:

  1. Allow participant profiles with no rtps tag

  2. Add Log warning message upon receiver resource creation failure, instead of an error

  3. Updatable disable_positive_acks period

  4. Backport workflows from master

  5. Update GitUtils.cmake

  6. Use foonathan memory manager for reducing allocations in SharedMemManager.hpp

  7. Rerun failed tests with ctest option instead of colcon’s

  8. Add CCache to all CI jobs

  9. Simplify code in CDRMessage

  10. TCP unique client announced local port

  11. Make DataWriters always send the key hash on keyed topics

  12. Include terminate process signals handler in discovery server

This release includes the following fixes:

  1. Fix encapsulation format in WLP used for the ParticipantMessageData

  2. Fix DomainParticipant::register_remote_type return when negotiating type

  3. Fix RemoteBuiltinEndpointHonoring blackbox test

  4. Fix .repos branches

  5. Fix bad-free when receiving malformed DATA submessages

  6. Fix clang warnings

  7. Use STL implementation of Timed/RecursiveTimedMutex when MSVC >= 19.36

  8. Fix the clang build for clang 14

  9. Fix HelloWorld DataSharing example idl

  10. Use FASTRTPS_NO_LIB on unittest root folder

  11. Fix Data Race when updating liveliness changed in WLP

  12. Fix TCP sender resources creation

  13. Fix flow controllers unit tests compilation when using Fast CDR from thirdparty

  14. Add XML parser bit_bound bounds check

  15. Fix branch selection on Github CI

  16. Better handling of trigger events in docs CI

  17. Use SO_EXCLUSIVEADDRUSE for Win32 unicast listening sockets

  18. Fix PubSubAsReliable test

  19. Fix FileWatchTest for Github windows CI

  20. Fix mac address overflow on windows

  21. Fix missing mandatory attribute check in XML parser struct type

  22. Update TLS unit test certificates

  23. Add missing thread include

  24. Add tests for reconnection with same GUID

  25. Notify data-sharing listener at the end of a successful matching in intraprocess

  26. Fix TCP deadlock on channel reuse

  27. TCP non-blocking send

  28. Fix DNS filter in CMakeLists file for tests

  29. Fix bad-free when receiving malformed DATA_FRAG submessage

  30. Fix memory problem when ciphering payload

  31. Fix CVE-2023-50257

  32. Fix build with TLS, but not security

  33. Fix std::move warning

  34. Update PR template to include check for PR description, title and backports

  35. Fix data race on writer destruction while sending heartbeat

  36. Fix comparison in remove_from_pdp_reader_history

  37. Fix data race in PDPListener and SecurityManager

  38. Fix an uninitialized value when building with GCC 13.2.0

  39. Fix max clash with Windows CI

  40. Discard already processed samples on PDPListener

  41. Remove unnecessary TCP warning

  42. Fix wrong log info messages on TCP

  43. Revert “TCP deadlock on channel reuse”

  44. Return const reference in get_log_resources

  45. Add a keyed fragmented change to the reader data instance only when it is completed

  46. Fix and refactor Windows Github 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.

Version 2.11.2 (EOL)

This release includes the following improvements:

  1. Improve Shared Memory resilience to crashing participants

  2. User configuration for Shared Memory metatraffic

  3. Performance improvements on intraprocess and data-sharing

This release includes the following fixes:

  1. Remove Mutex from TimedEventImpl

  2. Replace uint64_t by 8 in alignas specifier

  3. Fix XMLParser null-dereference in parseLogConfig

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.

Version 2.11.1 (EOL)

This release includes the following improvements:

  1. Correct CONTRIBUTING.md typo

  2. Improve validation on PID_PROPERTY_LIST deserialization

  3. Apply eProsima brand style to Fast DDS repository

  4. Fix spelling mistake: SUBSTRACTION to SUBTRACTION

This release includes the following fixes:

  1. Fixed long-standing reconnection issue on SHM transport

  2. Added missing include

  3. Fixed Boost handle usage regression

  4. Fix StatelessWriter locators filtering

  5. Avoid double definition of FASTDDS_ENFORCE_LOG_INFO

  6. Explicitly register type object in ContentFilteredTopicExample

  7. Properly handle zero-sized payloads on dynamic memory payload pools

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.

Version 2.11.0 (EOL)

This release includes the following features:

  1. Ignore every local endpoint within the DomainParticipant preventing local matching.

  2. Extend DynamicDataHelper API providing a print overload with std::ostream as parameter.

  3. TypeLookup Service Configuration.

  4. Static Discovery XSD Schema.

This release includes the following improvements:

  1. Fast DDS improvements
    1. Assign minimum available participant ID to new participants.

    2. Export symbols correctly on ContentFilteredTopic.

    3. Improve content filter expression parameters check and verbosity.

    4. Check TCP headers endianness.

    5. Security module: distinguished names (DN) comparison.

  2. Fast DDS deprecation
    1. DDS:Crypto:AES-GCM-GMAC configuration using Property Policy QoS (security vulnerability).

  3. CI improvements
    1. Include BitmapRange unit tests.

    2. Support for running some tests in parallel.

    3. Windows workflow.

  4. Build system
    1. Improve CMake target loading. Removal of FASTDDS_STATIC CMake option.

    2. Avoid auto-linkage using CMake.

  5. Dependencies
    1. Upgrade internal type supports using latest Fast DDS-Gen release v2.5.1.

    2. Upgrade Fast CDR submodule to v1.1.0.

  6. Examples
    1. Admit XML configuration files in AdvanceConfigurationExample.

    2. New Discovery Server example.

This release includes the following fixes:

  1. Fast DDS bugfixes
    1. Fix crash when creating two participants with the same fixed participant ID.

    2. Fix crash when calling on_requested_deadline_missed() callback.

    3. Fix crashes caused by not capturing every Fast CDR exception.

    4. Correctly resolve aliases in DDSSQLFilter.

    5. Wait for log background thread initialization on the first queued entry.

    6. Fix data race when accessing WRITE_PARAM_DEFAULT static variable.

    7. Fix partition copy in QoS.

    8. Fix Data-Sharing delivery when data_count is zero.

    9. Fix API Fast DDS v2.10.0 API break calling correctly. on_participant_discovery() callbacks.

    10. Security module: Honor Allow Unauthenticated Participants flag.

    11. Fix concurrent access to load_profiles().

    12. Fix UBSan (Undefined Behavior Sanitizer) issues.

    13. Improve Doxygen documentation about DomainParticipantListener discovery callbacks.

  2. XSD fixes
    1. Set TransportDescriptor kind parameter as optional.

    2. Correctly assign QoS to the proper endpoint.

    3. Add missing tags.

  3. CI fixes
    1. Fix null dereference in fuzzer code.

    2. Limit Thread Sanitizer memory usage to prevent runner shutdown.

    3. Use correct time unit in latency tests.

    4. Run communication tests.

  4. Examples
    1. Correct DDS entity deletion order.

  5. Installer generation
    1. Add documentation fallback when the documentation tag is not found.

  6. Repository
    1. Remove 2.1.x as active branch.

    2. Remove 2.8.x as active branch.

  7. Non Tier 1 support
    1. Fix build on MSVC 19.36.

    2. Forward compatibility with Boost inter-process 1.74+.

    3. Include missing header files required for compiling with GCC 13.

    4. QNX build fixes.

    5. Fix build issues in RPM systems.

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.

Version 2.9 (EOL)

Version 2.9.2 (EOL)

This release includes the following ABI compatible improvements:

  1. Library improvements
    1. Improve behavior when STRICT_REALTIME CMake option is not enabled.

    2. Using functors for for_matched_readers parameter.

    3. Improve auto GAPs in Data Sharing.

    4. Improve content filter expression parameters check and verbosity.

    5. Improve validation on PID_PROPERTY_LIST deserialization.

  2. Fast DDS CLI
    1. Handle SIGTERM signal.

This release includes the following bugfixes:

  1. Security vulnerability
    1. Fix chain of trust issues with a single CA certificate.

  2. Library bugfixes
    1. Fix RTPS StatelessWriter ACK check.

    2. UBSan (Undefined Behavior Sanitizer) fixes.

    3. Fix backwards compatibility using SHM communication.

    4. Correctly handle builtin endpoint mask.

    5. Fix crash when enabling DisablePositiveACKsQosPolicy with remote best-effort readers.

    6. Validity check for first sequence number.

    7. ASAN (Address Sanitizer) fixes.

    8. Correctly assign multicast port to multicast initial peers.

    9. Protect against uncaught exception in SHM segment creation.

    10. Initial acknack backoff.

    11. Fix crash when calling on_requested_deadline_missed() callback.

    12. Security module: Honor allow_unauthenticated_participants flag.

    13. Fix crashes caused by not capturing every Fast CDR exception.

    14. Correctly resolve aliases in DDSSQLFilter.

    15. Wait for log background thread initialization on the first queued entry.

    16. Fix partition copy in QoS.

    17. Fix Data-Sharing delivery when data_count is zero.

    18. Fix StatelessWriter locators filtering.

    19. Avoid double definition of FASTDDS_ENFORCE_LOG_INFO.

    20. Fixed long-standing reconnection issue on SHM transport.

  3. CI fixes
    1. Fix test building when using GTEST_INDIVIDUAL CMake option.

    2. Use correct time unit in latency tests.

  4. Synchronization fixes
    1. Take mutex when removing local reader in WLP.

    2. Fix data races in SecurityManager authentication process.

  5. Example fixes
    1. Avoid creating entities within callbacks in DynamicHelloWorldExample.

    2. Remove Asio dependency from DeadlineQosExample.

    3. Correct DDS entity deletion order.

    4. Explicitly register TypeObject in ContentFilteredTopicExample.

  6. Installer generation
    1. Add documentation fallback when the documentation tag is not found.

  7. Non Tier 1 Support
    1. Fix build for GCC5.

    2. Fix build on MSVC 19.36.

    3. Include right header when building for iOS.

    4. Forward compatibility with Boost inter-process 1.74+.

    5. Include missing header files required for compiling with GCC13.

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.

Version 2.9.1 (EOL)

This release includes the following bugfixes:

  1. Synchronization fixes:
    1. Fix deadlock in Writer Liveliness Protocol (WLP) using intraprocess.

    2. Fix data race in DomainParticipant::set_listener().

    3. Fix deadlock on TLS closure.

  2. Other fixes:
    1. Fix notification lost.

    2. Fix total_read_ to be consistent with Reader’s History after DataReader::get_first_untaken_info().

    3. Use shared pointers for internal singletons.

    4. Support CCache on Windows.

    5. Avoid null dereference on fuzzer.

    6. Other minor fixes and improvements.

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.

Version 2.9.0 (EOL)

This minor release includes several new features (new log macros to avoid conflicts with external libraries), behavior change (default memory management policy is no longer PREALLOCATED_MEMORY_MODE, enable by default Fast DDS Statistics module but only taking statistics metrics if the corresponding Statistics DataWriter is enabled), performance improvements, CI improvements (including address sanitizer jobs), and several bug fixes.

Note

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.

Note

It is also advisable to regenerate the type support from the IDL files using Fast DDS-Gen v2.3.0. Furthermore, if upgrading to v2.9.0, it is also recommended to upgrade Fast CDR to v1.0.26.

This release includes the following features:

  1. New log macros EPROSIMA_LOG_INFO, EPROSIMA_LOG_WARNING and EPROSIMA_LOG_ERROR.

  2. Add ENABLE_OLD_LOG_MACROS CMake option to support disabling the compilation of previous log macros.

This release includes the following behavior changes:

  1. Default memory management policy set to PREALLOCATED_WITH_REALLOC_MEMORY_MODE.

  2. Statistics metrics are only calculated/accumulated when their corresponding DataWriter is enabled in Fast DDS Statistics Module.

  3. Enable FASTDDS_STATISTICS CMake option by default.

This release includes the following improvements:

  1. CI improvements:
    1. Add address sanitizer job for Fast DDS library.

    2. Add address sanitizer job for Discovery Server test suite.

  2. Upgrade Fast CDR submodule.

This release includes the following bugfixes:

  1. Synchronization fixes:
    1. Fix deadlock when removing remote DomainParticipants by expired liveliness when using Security.

    2. Protect DomainParticipant::set_listener() avoiding null reference.

    3. Fix data race on WriterProxy::stop while TimedEvent is being triggered.

    4. Protect creation/destruction of Boost’s named_mutex.

  2. CI fixes:
    1. Fix Statistics Module test suite.

    2. Fix recurring data races in test suite.

    3. Fix thread sanitizer job keeping Ubuntu 20.04.

  3. Other:
    1. Fix Topic creation when registering a type name different from the internal TypeSupport name.

    2. Fix communication with asymmetric Ignore Participant flags.

    3. Several dependencies fixes upgrading to Ubuntu 22.04.

    4. Disable error logged when DomainParticipant profile is not found.

    5. Fix CMake for Fast DDS use as submodule.

    6. Upgrade internal type supports generated with Fast DDS-Gen v2.3.0.

    7. Other minor fixes.

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.

Version 2.8 (EOL)

Version 2.8.2 (EOL)

This release includes the following improvements:

  1. Add ASAN CI tests for Fast DDS and Discovery Server

  2. Mirror master onto both 2.8.x & 2.9.x

  3. Doxygen documentation: add deprecation notice to ThroughputControllerDescriptor

  4. Several fixes to remove warnings in Ubuntu Jammy (22.04)

  5. Improve behavior when HAVE_STRICT_REALTIME is not set

  6. Using functors in StatefulWriter.cpp for_matched_readers

  7. Fix build on old compilers

  8. Avoid creation of DynamicTypes on example

  9. Implement a validity check for firstSN

This release includes the following bugfixes:

  1. Fix bug in Topic creation with different Type Name

  2. Fix tests failing with subprocess aborted error

  3. Fix communication with asymmetric ignoreParticipantFlags

  4. Added ignore_participant_flags() to Blackbox_FastRTPS PubSubReader.

  5. Fix Deadlock in remove_participant (ResourceEvent thread) when compiled WITH_SECURITY

  6. Fix failed tests when compiling with statistics enabled

  7. Fix Windows StatistisQosTests.cpp linkage and Failed test

  8. Fixing deadlock in WLP

  9. Fix notification lost

  10. Fix StatelessWriter ACK check

  11. Fix total_unread_ consistent with reader’s history upon get_first_untaken_info()

  12. Fix chain of trust issues

  13. Fixed StatisticsSubmessageData unaligned access

  14. Fix build error when GTEST_INDIVIDUAL is OFF

  15. Correctly handle builtin endpoints mask

  16. Added missing mutex to WLP::remove_local_reader

  17. Handle SIGTERM in fast discovery server

  18. Improve auto gaps in data sharing

  19. Replaced SecurityManager temporary ProxyDatas with ProxyPools

  20. Fix crash when disable_positive_acks is enable and the remote reader is best-effort

  21. Protect from uncaught exception during SHM Segment creation

  22. Fix asio dependency

  23. Include the right header when building for iOS

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.

Version 2.8.1 (EOL)

This release includes the following bugfixes:

  1. Statistics module fixes:
    1. Increase statistics DataWriter history.

    2. Fix Statistics module CI.

    3. Install Statistics IDL file.

    4. Fix for building in old compilers.

    5. Fix core dumped in delete_contained_entities().

  1. Address sanitizer fixes:
    1. Add ASAN CI job and SANITIZE CMake option.

    2. Fixes reported by address sanitizer.

  1. Synchronization fixes:
    1. Fix data races when creating DataWriters.

    2. Ensure shared_mutex implementation is consistent throughout supported platforms.

  1. Other fixes:
    1. Include missing ReadCondition header.

    2. Fix selection of output locators.

    3. Fix null-dereference on parseXMLEnumDynamicType.

    4. Include 2.8.x branch release support.

    5. Send GAPs correctly when using separate sending.

    6. Fixes for building in old compilers.

    7. Fix DataReader::read_next_instance() and DataReader::take_next_instance() implementation.

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.

Version 2.8.0 (EOL)

This minor release includes several new features, performance improvements (especially in the case of topics with many instances), CI improvements (including the ability to run the CI in Android emulators or devices), and several bug fixes.

Note

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.

Note

It is also advisable to regenerate the type support from the IDL files using Fast DDS-Gen v2.2.0. Furthermore, if upgrading to v2.8.0, it is also recommended to upgrade Fast CDR to v1.0.25.

This release includes the following features:

  1. Full Ownership and OwnershipStrength QoS support

  2. External locators

  3. UDPv6 support for fast-discovery-server tool and ROS_DISCOVERY_SERVER

  4. XML configuration support for statistics DataWriters QoS

  5. SNI support

  6. Propagate PropertyQoS properties when explicitly set

  7. Add API to createRTPSWriter with a custom pool

  8. Add std::string::compare API to fixed_string

  9. Get WAN address API in TCPv4 transport descriptors

  10. Adding DomainParticipantFactory::get_shared_instance() API

This release includes the following improvements:

  1. Performance improvements:
    1. Skip writer_removed processing for unaccounted instances

    2. Improve GUID_t operator< performance

  2. CI improvements:
    1. Add optional parameters to thread-sanitizer job

    2. Enable Android testing on device

  3. Examples:
    1. Update BasicConfigurationExample to allow set up TTL

    2. Add Guid info to BasicConfiguration Example cout

  4. Internal implementation improvements:
    1. Add script to generate idl files

    2. Group set_qos_from_attributes free functions into a separate file

    3. Update script for generating idl files

    4. Set last_heartbeat_count_ private member of WriterProxy as atomic

  5. Android Improvements

  6. Upgrade Fast CDR submodule

This release includes the following bugfixes:

  1. Synchronization fixes:
    1. Fix datarace using writer’s locator selectors

    2. Add lock guard at changing SHM port listener status members

    3. Add atomic variable to prevent datarace in FlowController

    4. Disable RTPSParticipantImpl after removing it from RTPSDomain participants list

    5. Fixing datarace on listener callbacks

    6. Protect access to reader listeners

    7. Use thread-safe localtime function in unix distributions

    8. Fixed usage of uninitialised ifreq

    9. Adding protection to id_counter access

  2. Repository fixes:
    1. Fix spelling mistake

    2. Add python3 dependency to package.xml

  3. Other:
    1. Fix null dereference on parseXMLBitsetDynamicType

    2. Change internal include path of nlohmann/json header file

    3. Instance allocation consistency

    4. Fix complex member printing for DynamicDataHelper

    5. Fix initialization order in mock

    6. Upgraded internal type supports

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.

Version 2.7 (EOL)

Version 2.7.2 (EOL)

This release includes the following improvements:

  1. Skip writer_removed processing for unaccounted instances.

  2. Improve GUID_t operator < performance.

This release also includes the following bugfixes:

  1. Fix complex member printing for DynamicDataHelper.

  2. Add python3 dependency.

  3. Fix selection of output locators.

  4. Fix data races when creating DataWriters.

  5. Fix null dereferences on XML parser.

  6. Send GAPs correctly when using separate sending.

  7. Install Statistics IDL file.

  8. Fixes for building in old compilers.

  9. Fix several deadlocks.

  10. Fix communication with asymmetric Ignore Participant flags.

  11. Fix notification lost.

  12. Fix StatelessWriter ACK check.

  13. Fix total_read_ to be consistent with Reader’s History after DataReader::get_first_untaken_info().

  14. Fix doxygen documentation adding deprecated to ThroughputControllerDescriptor.

  15. Several dependencies fixes upgrading to Ubuntu 22.04.

  16. Ensure shared_mutex implementation is consistent throughout supported platforms.

  17. Fix StatisticsSubmessageData unaligned access.

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.

Version 2.7.1 (EOL)

This release includes the following features in an ABI compatible way:

  1. Checking STATIC EDP XML Files by means of DomainParticipantFactory::check_xml_static_discovery().

  2. ReadCondition implementation.

This release includes the following improvements:

  1. Thread sanitizer CI.

  2. Overload get_unread_count().

  3. Improve read/take performance when using topic with a great number of keys.

  4. Improve rediscovery on lossy environments.

  5. New CMake option USE_THIRDPARTY_SHARED_MUTEX.

  6. Notify changes in bulk in RTPS readers.

This release includes the following bugfixes:

  1. Fix Fast CDR submodule update to v1.0.24.

  2. Fix access to some pointers.

  3. Fixed validation on ParameterPropertyList_t.

  4. Fixed acknowledgement in DataSharing.

  5. Fixed wrong usage of std::remove_if.

  6. Suppress OpenSSL 3.0 warnings.

  7. Fixed race condition in Logging module.

  8. Other minor fixes and improvements.

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.

Version 2.7.0 (EOL)

This release includes the following improvements:

  1. Support for DDS SampleRejectedStatus API

  2. Support for DDS DataWriter methods:

  1. Support for DDS find_topic()

  2. Support for GCC 12

  3. Upgrade CMake minimum requirement to 3.16.3

  4. Add Windows DLL support to Dynamic Types API

Some bugfixes are also included:

  1. Deadlocks and data races

  2. Move deprecated OpenSSL cleanup function to match the right version

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.

Version 2.5 (EOL)

Version 2.5.2 (EOL)

This release includes the following improvements:

  1. Support lowercase keywords and hexadecimal values on SQL filter.

  2. Support for GCC 12.

This release includes the following bugfixes:

  1. Fix MatchedStatus last_*_handle.

  2. Fix recommended statistics DataReaderQos to enable backwards compatibility.

  3. Fix deadlocks and data races.

  4. Fix empty partition validation checks.

  5. Fix corner case with reliable writers and samples with a huge number of fragments.

  6. Other minor fixes and improvements.

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.

Version 2.5.1 (EOL)

This release includes the following improvements:

  1. ContentFilterTopic filtering at the DataReader side.

  2. Release lifecycle.

This release includes the following bugfixes:

  1. XML parser fixes.

  2. Discovery Server fixes.

  3. Fix DataSharing sample validation.

  4. PKCS#11 support fixes.

  5. Test fixes.

  6. Doxygen documentation fixes.

  7. GAP message fix.

  8. Enable memory protection on DataSharing readers.

  9. TCP reconnection issues.

  10. Fix dynamic network interfaces feature.

  11. Several Security module fixes.

  12. STRICT_REALTIME fix.

  13. Suppress OpenSSL 3.0 warnings.

  14. Move optionparser to thirdparty.

  15. Thread-safe access to endpoints collections.

  16. MemberDescriptor fully qualified name.

  17. Setting QoS fix.

  18. Other minor fixes and improvements.

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.

Version 2.5.0 (EOL)

This minor release is API compatible with the previous minor release, but introduces ABI breaks on two of the three public APIs:

  • Methods and attributes have been added on several classes of the DDS-PIM high-level API, so indexes of symbols on dynamic libraries may have changed.

  • Methods and attributes have been added on several classes of the RTPS low-level API, so indexes of symbols on dynamic libraries may have changed.

  • Old Fast-RTPS high-level API remains ABI compatible.

This minor release includes the following features:

  1. Support for PKCS#11 format URIs for private keys

  2. Added interfaces for content filter APIs

  3. Allow new network interfaces to be detected at runtime

  4. New API on DataWriter to wait for a specific instance to be acknowledged

  5. Added interfaces for concatenation of transports

  6. Allow XML profiles to be loaded from a string

  7. Allow disabling piggyback heartbeat on XML and DataWriter QoS

  8. New basic configuration example

It also includes the following improvements:

  1. Working implementation of instance_state and view_state

  2. Allow zero-valued keys

  3. Made some type aliases public to ease python bindings integration

  4. Improved performance by avoiding unnecessary payload copies for samples that are going to be rejected

  5. Removed unnecessary headers from Log module public headers

  6. Add support for Key annotation in TypeObjectFactory

  7. Only export public symbols on non-windows platforms

  8. Some documentation improvements

Some important bugfixes are also included:

  1. Fixed payload pool handling on EDPSimple destructor

  2. Fixed null dereference on XML parser

  3. Correctly export XTypes related methods on Windows

  4. Ensure correct boost singleton destruction order

  5. Avoid warning when environment file filename is empty

  6. Correctly set GUID of DataWriter and DataReader upon creation

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.

Version 2.4 (EOL)

Version 2.4.2 (EOL)

This release includes the following improvements:

  1. Enable memory protection on DataSharing readers

  2. Add const overload of DataReader::guid()

  3. Set recommended statistics DataReaderQos to PREALLOCATED_WITH_REALLOC

  4. Allow fully qualified name on MemberDescriptor

This release includes the following bugfixes:

  1. Fix and refactor EDPSimple destructor

  2. Fix several build warnings on certain platforms

  3. Fix OSS fuzz issues

  4. Fix TCP synchronization issues

  5. Correct reporting of MatchedStatus last_*_handle

  6. Ensure correct boost singleton destruction order

  7. Fix inserting minimum CacheChange_t in GAP message

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.

Version 2.4.1 (EOL)

This release includes the following improvements:

  1. Fixed several flaky tests

  2. Improved bandwidth usage of GAPs and HEARTBEATs

  3. Correctly implement delete_contained_entities

  4. Use native inter-process on Windows

  5. Improved performance of unregister_instance

  6. Improved OSS-fuzz integration

  7. Support for partitions on DataWriterQoS and DataReaderQoS

  8. Some documentation improvements

  9. Removed unused macro to avoid naming clashes

This release includes the following bugfixes:

  1. Avoid bad_node_size exception when cross building

  2. Fixed build on old compilers

  3. Fixed buffers exhaustion when compiled with statistics

  4. Fixed runtime addition of Discovery Servers

  5. Fixed dangling sample references with big data

  6. Fixed history record issues with persistence

  7. Correctly disable DataReader on destruction

  8. Fixed alignment issues on XTypes QoS policies serialization

  9. Fixed reconnection to Discovery Server

  10. Correctly use builtin publisher for statistics DataWriters

  11. Fixed various GCC-11 warnings

  12. Use only public APIs from foonathan::memory

  13. Fixed installation directories for DDS examples

  14. Fixed read after free on security code

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.

Version 2.4.0 (EOL)

This minor release is API compatible with the previous minor release, but introduces ABI breaks on two of the three public APIs:

  • Methods and attributes have been added on several classes of the DDS-PIM high-level API, so indexes of symbols on dynamic libraries may have changed.

  • Methods and attributes have been added on several classes of the RTPS low-level API, so indexes of symbols on dynamic libraries may have changed.

  • Old Fast-RTPS high-level API remains ABI compatible.

This minor release includes the following features:

It also includes the following improvements:

  • 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.

Some important bugfixes are also included:

  • Fixed order of returned samples on topics with keys.

  • Allow updating partitions to an empty set.

  • Correctly propagate DomainParticipantQos updates.

  • Avoid a volatile data-sharing reader to block a writer.

  • Correctly give priority to intra-process over data-sharing.

  • Fixed reallocation issue on LivelinessManager.

  • Fixed deadline issue on volatile DataWriter

  • Fixed STRICT_REALTIME silently not active with Unix POSIX systems.

  • Fixed build errors with OpenSSL 3.0

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.

Version 2.3 (EOL)

Version 2.3.6 (EOL)

This release includes the following improvements:

  1. Improve rediscovery on lossy environments.

  2. Upgrade CMake minimum requirement to 3.13.

  3. Improve Guid_t operator < performance.

This release includes the following bugfixes:

  1. Fixed validation on ParameterPropertyList_t.

  2. Add python3 dependency to package.xml.

  3. Fix null references and uncaught exceptions on XML parser.

  4. Install Statistics IDL file.

  5. Fix data races when creating DataWriters.

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.

Version 2.3.5 (EOL)

This release includes the following improvements:

  1. Fixed several flaky tests.

  2. Use native inter-process on Windows.

  3. Support for partitions on DataWriterQoS and DataReaderQoS.

  4. Support for GCC 12.

  5. Correctly implement delete_contained_entities.

This release also includes the following bugfixes:

  1. Fixed deadline issue on volatile DataWriter.

  2. Allow updating partitions to an empty set.

  3. Fixed order of returned samples on topics with keys.

  4. Fixed issues in LivelinessManager.

  5. Correctly give priority to intra-process over data-sharing.

  6. Avoid bad_node_size exception when cross-building.

  7. Fixed build errors with OpenSSL 3.0.

  8. Avoid a volatile data-sharing reader to block a writer.

  9. Fixed history record issues with persistence.

  10. Correctly disable DataReader on destruction.

  11. Fixed various GCC 11 warnings.

  12. Fixed payload pool handling on EDPSimple destructor.

  13. Fixed read after free on security code.

  14. Fixed null dereference on XML parser.

  15. Ensure correct boost singleton destruction order.

  16. Enable memory protection on DataSharing readers.

  17. TCP reconnection issues.

  18. MemberDescriptor fully qualified name.

  19. Fix recommended statistics DataReaderQos to enable backwards compatibility.

  20. Fixed dangling sample references with big data.

  21. Fixed deadlocks and data races.

  22. Fixed reconnection to Discovery Server.

  23. Other minor fixes.

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.

Version 2.3.4 (EOL)

This release includes the following improvements:

  1. Support of googletest using colcon

  2. Network latency reports source participant

  3. Update Fast DDS Gen to v2.0.2

This release includes the following bugfixes:

  1. Fix mutex lock count on PDPListener

  2. Limit SequenceNumberSet number of bits on deserialization

  3. Fix segmentation fault on discovery server

  4. Fix deadlock with security and timers

  5. Fix bug using not protected code in a test

  6. Fix deadlock with LivelinessManager

  7. Fix interval loop on events

  8. Fix run event when was cancelled

  9. Validate sequence range on CDRMessage::readSequenceNumberSet

  10. Fix subscription throughput data generation

  11. Allow examples to build on QNX

  12. Fix code on SHM clean

  13. Accept Statistics DataWriters in Discovery Server

  14. Fix read/take behavior when a future change is found

  15. Correctly handle deserialization errors on read_next_sample() / take_next_sample()

  16. Fixing SequenceNumberSet_t deserialization

  17. Proper history clean up when a reader unmatches a writer

  18. Unprotected code loaning samples

  19. Fix publication throughput statistic on volatile writers

  20. Fix Fast DDS CLI server name

  21. Several fixes in examples and tests

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.

Version 2.3.3 (EOL)

This release includes the following improvements:

  • 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

This release includes the following bugfixes:

  • Fixed warnings and segfaults on 32-bit platforms

  • Fixed UDPv6 behavior

  • Fixed persistence guid issue on statistics writers

  • Fixed static linking with open SSL

  • Fixed statistics header file inclusion

  • Fixed build on RedHat systems

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.

Version 2.3.2 (EOL)

This release includes the following feature:

  • Statistics Module

It also includes the following improvements:

  • 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

This release includes the following bugfixes:

  • Add a correct multicast address for UDPv6

  • Recover from out-of-sync TCP datagrams

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.

Version 2.3.1 (EOL)

This release includes several bugfixes and improvements:

  • 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

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.

Version 2.3.0 (EOL)

This minor release is API compatible with the previous minor release, but introduces ABI breaks on two of the three public APIs:

  • Methods and attributes have been added on several classes of the DDS-PIM high-level API, so indexes of symbols on dynamic libraries may have changed.

  • Methods and attributes have been added on several classes of the RTPS low-level API, so indexes of symbols on dynamic libraries may have changed.

  • Old Fast-RTPS high-level API remains ABI compatible.

This release adds the following features:

It also includes the following improvements:

  • 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

Some important bugfixes are also included:

  • Fixed shared memory usage on QNX

  • Fixed reference counting on internal pools

  • Fixed singleton destruction order

  • Fixed interoperability issues with x-types information

  • Fixed recovery of shared memory buffers

  • Lifespan support in persistent writers

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.

Version 2.2 (EOL)

Version 2.2.1 (EOL)

This release includes the following improvements:

  1. Data-sharing delivery internal refactor.

  2. Performance tests refactored to use DDS-PIM high-level API.

  3. Discovery server improvements.

This release includes the following bugfixes:

  1. Fixed reference counting on internal pools.

  2. Fixed singleton destruction order.

  3. Fixed default multicast locators.

  4. Fixed interoperability issues with x-types information.

  5. Fixed Reader history issues.

  6. Fixed data races issues.

  7. Fixed shared memory issues.

  8. Fixed heartbeat and ACK issues.

  9. Fixed LivelinessManager issues.

  10. Fixed TCP reception synchronization.

  11. Fixed build issues on old compilers.

  12. Allow modifying Partition QoS in enabled entities.

  13. Other minor fixes and improvements.

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.

Version 2.2.0 (EOL)

This minor release is API compatible with the previous minor release, but introduces ABI breaks on two of the three public APIs:

  • Methods and attributes have been added on several classes of the DDS-PIM high-level API, so indexes of symbols on dynamic libraries may have changed.

  • Methods and attributes have been added on several classes of the RTPS low-level API, so indexes of symbols on dynamic libraries may have changed.

  • Old Fast-RTPS high-level API remains ABI compatible.

This release adds the following features:

  • 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

It also includes the following improvements:

  • Code coverage policy

  • Added several tests to increase coverage

  • Increased GUID uniqueness

  • Allow logInfo messages to be compiled on build types other than debug

Some important bugfixes are also included:

  • Fixed timed events manager race condition

  • Fixed payload protection issues with SHM transport

  • Writers correctly handle infinite resource limits on keyed topics

  • Fixed unsafe code on AESGCMGMAC plugin

  • Several fixes for IPv6 (whitelists, address parser)

  • Fixes on liveliness timing handling

  • Fixed warnings building on C++20

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.

Version 2.1 (EOL)

Version 2.1.4 (EOL)

This release includes the following improvements:

  1. Improve auto GAPs in Data Sharing

  2. Improve behavior when STRICT_REALTIME CMake option is not enabled

  3. Handle SIGTERM in fast discovery server CLI

This release includes the following bugfixes:

  1. Select correct listener for on_requested_deadline_missed

  2. Correctly assign multicast port to multicast initial peers

  3. Fix chain of trust issues with a single CA certificate

  4. Correctly handle builtin endpoints mask

  5. Fix build on MSVC 19

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 a version older than 1.10.0, regenerating the code is recommended.

Version 2.1.3 (EOL)

This release includes the following improvements:

  1. Improve rediscovery on lossy environments.

This release includes the following bugfixes:

  1. Fixed validation on ParameterPropertyList_t.

  2. Fixed SequenceNumberSet_t deserialization.

  3. Add python3 dependency to package.xml.

  4. Fix data races when creating DataWriters.

  5. Fix deadlock when removing remote DomainParticipants by expired liveliness when using Security.

  6. Fix communication with asymmetric Ignore Participant flags.

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 a version older than 1.10.0, regenerating the code is recommended.

Version 2.1.2 (EOL)

This release includes the following improvements:

  1. Allow fully qualified name in TypeDescriptor.

  2. Use native inter-process on Windows.

  3. Support for GCC 12.

  4. Support of googletest using colcon.

This release also includes the following bugfixes:

  1. Fixed recovery of shared memory buffers.

  2. Fixed issues in LivelinessManager.

  3. Fixed default multicast locators.

  4. Fixed TCP issues.

  5. Fixed deadlocks and data races.

  6. Fixed deadline issue on volatile DataWriter.

  7. Avoid bad_node_size exception when cross-building.

  8. Fixed order of returned samples on topics with keys.

  9. Allow updating partitions to an empty set.

  10. Suppress OpenSSL 3.0 warnings.

  11. MemberDescriptor fully qualified name.

  12. Fixed history record issues with persistence.

  13. Fixed reconnection to Discovery Server.

  14. Other minor fixes.

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 a version older than 1.10.0, regenerating the code is recommended.

Version 2.1.1 (EOL)

This release includes the following bugfixes:

  • Fixed race condition on security handshake

  • Fixed SHM data corruption when using both payload and sub-message protection

  • Fixed some interoperability issues

  • Fixed race condition on timed-events thread

  • Fixed usage of SHM on QNX systems

It also includes the following improvements:

  • Increased uniqueness of GUID prefix

  • Discovery server improvements

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 a version older than 1.10.0, regenerating the code is recommended.

Version 2.1.0 (EOL)

This minor release is API compatible with the previous minor release, but introduces ABI breaks on two of the three public APIs:

  • Methods and attributes have been added on several classes of the DDS-PIM high-level API, so indexes of symbols on dynamic libraries may have changed.

  • Methods and attributes have been added on several classes of the RTPS low-level API, so indexes of symbols on dynamic libraries may have changed.

  • Old Fast-RTPS high-level API remains ABI compatible.

Users of the RTPS low-level API should also be aware of the following API deprecations:

  • History::reserve_Cache has been deprecated

    • Methods RTPSWriter::new_change or RTPSReader::reserveCache should be used instead

  • History::release_Cache has been deprecated

    • Methods RTPSWriter::release_change or RTPSReader::releaseCache should be used instead

This release adds the following features:

  • 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

It also includes the following improvements:

  • Internal refactor for intra-process performance boost

  • Allow usage of foonathan/memory library built without debug tool

  • Large data support on performance tests

  • Reduced flakiness of several tests

Some important bugfixes are also included:

  • Fixed behavior of several DDS API methods

  • Fixed interoperability issues with RTI connext

  • Fixed DLL export of some methods

  • Avoid redefinition of compiler defined macros

  • Fixed some intra-process related segmentation faults and deadlocks

  • Fixed large data payload protection issues on intra-process

  • Fixed C++17 and VS 2019 warnings

  • Fixed linker problems on some platforms

  • Fixed transient local retransmission after participant drop

  • Fixed assertion failure on persistent writers

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 a version older than 1.10.0, regenerating the code is recommended.

Version 2.0 (EOL)

Version 2.0.3 (EOL)

It also includes the following improvements:

  1. Increased uniqueness of GUID prefix (#1648)

  2. Upgrade Fast CDR to v1.0.20 (#1793)

This release includes the following bugfixes:

  1. Fixed some race conditions (#1540, #2023)

  2. Fixed SHM issues (#1644, #1895, #2266)

  3. Fixed some interoperability issues (#1624, #1752, #1849)

  4. Fixed Discovery Server 2.0 issues (#1639, #1651, #1761, #1796)

  5. Fixed several issues on QNX systems (#1744, #1773, #1776)

  6. Fix singleton destruction order (#1758)

  7. Fix heartbeat and ACK issues (#1865)

  8. Fix issues in LivelinessManager (#1872, #2147)

  9. Fix multicast issues (#1966, #1905)

  10. Fix TCP reception synchronization (#1981)

  11. XTypes standard compliance and fixes (#2006, #2278)

  12. Other minor fixes (#1558, #1734, #1814, #1935, #1978, #2121)

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 a version older than 1.10.0, regenerating the code is recommended.

Version 2.0.2 (EOL)

This release includes the following improvements:

  • 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

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 a version older than 1.10.0, regenerating the code is recommended.

Version 2.0.1 (EOL)

This release includes the following bug fixes:

  • Fixed sending GAPs to late joiners

  • Fixed asserting liveliness on data reception

  • Avoid calling OpenSSL_add_all_algorithms() when not required

Other improvements:

  • Fixing warnings

PRs in merge order: #1295, #1300, #1304, #1290, #1307.

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 a version older than 1.10.0, regenerating the code is recommended.

Version 2.0.0 (EOL)

This release has the following API breaks:

  • eClock API, which was deprecated on v1.9.1, has been removed

  • eprosima::fastrtps::rtps::RTPSDomain::createParticipant methods now have an additional first argument domain_id

  • Data member domainId has been removed from eprosima::fastrtps::rtps::RTPSParticipantAttributes and added to eprosima::fastrtps::ParticipantAttributes

Users should also be aware of the following deprecation announcement:

  • All classes inside the namespace eprosima::fastrtps should be considered deprecated. Equivalent functionality is offered through namespace eprosima::fastdds.

  • Namespaces beneath eprosima::fastrtps are not included in this deprecation, i.e. eprosima::fastrtps::rtps can still be used)

This release adds the following features:

  • 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

It also includes the following bug fixes and improvements:

  • Support for OpenSSL 1.1.1d and higher

  • Support for latest versions of gtest

  • Support for FreeBSD

  • Fault tolerance improvements to Shared Memory transport

  • Fixed segfault when no network interfaces are detected

  • Correctly ignoring length of PID_SENTINEL on parameter list

  • Improved traffic on PDP simple mode

  • Reduced CPU and memory usage

Version 1.10 (EOL)

Version 1.10.1 (EOL)

This release includes the following improvements:

  1. Add new CMake option: SHM_TRANSPORT_DEFAULT. Shared Memory (SHM) Transport disabled by default.

  2. Comply with the RTPS standard concerning PID_SENTINEL.

  3. Support for OpenSSL 1.1.1d.

This release includes the following bugfixes:

  1. Fix crash when there are no network interfaces.

  2. Several Shared Memory Transport fixes.

  3. Other minor fixes.

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 a version older than 1.10.0, regenerating the code is recommended.

Version 1.10.0 (EOL)

This release adds the following features:

  • New built-in Shared Memory Transport

  • 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

It also includes the following bug fixes and improvements:

  • Fixed alignment on parameter lists

  • Fixed error sending more than 256 fragments.

  • Fix handling of STRICT_REALTIME.

  • Fixed submessage_size calculation on last data_frag.

  • Solved an issue when recreating a publishing participant with the same GUID.

  • Solved an issue where a publisher could block on write for a long time when a new subscriber (late joiner) is matched, if the publisher had already sent a large number of messages.

  • Correctly handling the case where lifespan expires at the same time on several samples.

  • Solved some issues regarding liveliness on writers with no readers.

  • Correctly removing changes from histories on keyed topics.

  • Not reusing cache change when sample does not fit.

  • Fixed custom wait_until methods when time is in the past.

  • Several data races and ABBA locks fixed.

  • Reduced CPU and memory usage.

  • Reduced flakiness of liveliness tests.

  • Allow for more use cases on performance tests.

Several bug fixes on discovery server:

  • Fixed local host communications.

  • Correctly trimming server history.

  • Fixed backup server operation.

  • Fixed timing issues.

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 a version older than 1.10.0, regenerating the code is recommended.

Version 1.9 (EOL)

Version 1.9.5 (EOL)

This release includes the following improvements:

  1. Propagate serialization error when reading samples from Subscriber History.

  2. Improvements in test suite.

  3. Improvements to reduce memory consumption.

  4. Update CMake (3.5) using newer policies.

  5. Improve PDP StatefulWriter announcement.

  6. Performance improvements.

  7. Message receiver improvements.

  8. QoS Policies improvements.

This release includes the following bugfixes:

  1. Fix compiler warnings in Windows when building the test suite.

  2. Fix several data races.

  3. Fix History issues.

  4. Fix errors when sending data fragments.

  5. Fix strict real-time behavior.

  6. Fix in Discovery Server.

  7. Fix CMake option.

  8. Fix interoperability issues.

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.

Version 1.9.4 (EOL)

This release adds the following features:

  • Intra-process delivery mechanism is now active by default.

  • Synchronous writers are now allowed to send fragments.

  • New memory mode DYNAMIC_RESERVE on history pool.

  • Performance tests can now be run on Windows and Mac.

  • XML profiles for requester and replier.

It also includes the following bug fixes and improvements:

  • Bump to FastCDR v1.0.12.

  • Bump to Fast-RTPS-Gen v1.0.3.

  • Fixed deadlock between PDP and StatefulReader.

  • Improved CPU usage and allocations on timed events management.

  • Performance improvements on reliable writers.

  • Fixing bugs when Intra-process delivery is activated.

  • Reducing dynamic allocations and memory footprint.

  • Improvements and fixes on performance tests.

  • Other minor bug fixes and improvements.

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.

Version 1.9.3 (EOL)

This release adds the following features:

  • Participant discovery filtering flags.

  • Intra-process delivery mechanism opt-in.

It also includes the following bug fixes and improvements:

  • Bump to Fast-RTPS-Gen v1.0.2.

  • Bring back compatibility with XTypes 1.1 on PID_TYPE_CONSISTENCY.

  • Ensure correct alignment when reading a parameter list.

  • Add CHECK_DOCUMENTATION cmake option.

  • EntityId_t and GuidPrefix_t have now their own header files.

  • Fix potential race conditions and deadlocks.

  • Improve the case where check_acked_status is called between reader matching process and its acknack reception.

  • RTPSMessageGroup_t instances now use the thread-local storage.

  • FragmentedChangePitStop manager removed.

  • Remove the data fragments vector on CacheChange_t.

  • Only call find_package for TinyXML2 if third-party options are off

  • Allow XMLProfileManager methods to not show error log messages if a profile is not found.

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.

Version 1.9.2 (EOL)

This release includes the following feature:

  • Multiple initial PDP announcements.

  • Flag to avoid builtin multicast.

It also adds the following bug fixes and improvements:

  • Bump to Fast-RTPS-Gen v1.0.1.

  • Bump to IDL-Parser v1.0.1.

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.

Version 1.9.1 (EOL)

This release includes the following features:

  • Fast-RTPS-Gen is now an independent project.

  • Header eClock.h is now marked as deprecated.

It also adds the following bug fixes and improvements:

  • Bump to FastCDR v1.0.11.

  • Installation from sources documentation fixed.

  • Fixed assertion on WriterProxy.

  • Fixed potential fall through while parsing Parameters.

  • Removed deprecated guards causing compilation errors in some 32 bits platforms.

  • addTOCDRMessage method is now exported in the DLL, fixing issues related with Parameters’ constructors.

  • Improve windows performance by avoiding usage of _Cnd_timedwait method.

  • Fixed reported communication issues by sending multicast through localhost too.

  • Fixed potential race conditions and deadlocks.

  • Eliminating use of acceptMsgDirectTo.

  • Discovery Server framework reconnect/recreate strategy.

  • Removed unused folders.

  • Restored subscriber API.

  • SequenceNumber_t improvements.

  • Added STRICT_REALTIME cmake option.

  • SubscriberHistory improvements.

  • Assertion of participant liveliness by receiving RTPS messages from the remote participant.

  • Fixed error while setting next deadline event in create_new_change_with_params.

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.

Version 1.9.0 (EOL)

This release includes the following features:

  • Partial implementation of allocation QoS.

  • Implementation of Discovery Server.

  • Implementation of non-blocking calls.

It also adds the following bug fixes and improvements:

  • Added sliding window to BitmapRange.

  • Modified default behavior for unknown writers.

  • A Flush() method was added to the logger to ensure all info is logged.

  • A test for loading Duration_t from XML was added.

  • Optimized WLP when removing local writers.

  • Some liveliness tests were updated so that they are more stable on Windows.

  • A fix was added to CMakeLists.txt for installing static libraries.

  • A fix was added to performance tests so that they can run on the RT kernel.

  • Fix for race condition on built-in protocols creation.

  • Fix for setting nullptr in a fixed_string.

  • Fix for v1.8.1 not building with -DBUILD_JAVA=ON.

  • Fix for GAP messages not being sent in some cases.

  • Fix for coverity report.

  • Several memory issues fixes.

  • fastrtps.repos file was updated.

  • Documentation for building with Colcon was added.

  • Change CMake configuration directory if INSTALLER_PLATFORM is set.

  • IDL sub-module updated to current version.

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.

Version 1.8 (EOL)

Version 1.8.5 (EOL)

This release includes the following bugfixes:

  1. Fix Subscriber History to correctly notify late-joiners in case of KEEP_LAST, RELIABLE, and TRANSIENT_LOCAL.

  2. Fix Writer History behavior when there are no matched readers.

  3. Fix heartbeat and ACK issues.

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.

Version 1.8.4 (EOL)

This release adds the following feature:

  • XML profiles for requester and replier

It also has the following important bug fixes:

  • Solved an issue when recreating a publishing participant with the same GUID (either on purpose or by chance)

  • Solved an issue where a publisher could block on write for a long time when, after a large number of samples have been sent, a new subscriber is matched.

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

Version 1.8.3 (EOL)

This release adds the following bug fixes and improvements:

  • Fix serialization of TypeConsistencyEnforcementQosPolicy.

  • Bump to Fast-RTPS-Gen v1.0.2.

  • Bump to IDL-Parser v1.0.1.

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

Version 1.8.2 (EOL)

This release includes the following features:

  • Modified unknown writers default behavior.

  • Multiple initial PDP announcements.

  • Flag to avoid builtin multicast.

  • STRICT_REALTIME compilation flag.

It also adds the following bug fixes and improvements:

  • Fix for setting nullptr in a fixed string.

  • Fix for not sending GAP in several cases.

  • Solve Coverity report issues.

  • Fix issue of fastddsgen failing to open IDL.g4 file.

  • Fix unnamed lock in AESGCMGMAC_KeyFactory.cpp.

  • Improve XMLProfiles example.

  • Multicast is now sent through localhost too.

  • BitmapRange now implements sliding window.

  • Improve SequenceNumber_t struct.

  • Participant’s liveliness is now asserted when receiving any RTPS message.

  • Fix leak on RemoteParticipantLeaseDuration.

  • Modified default values to improve behavior in Wi-Fi scenarios.

  • SubscriberHistory improvements.

  • Removed use of acceptMsgDirectTo.

  • WLP improvements.

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

Version 1.8.1 (EOL)

This release includes the following features:

It also adds the following bug fixes and improvements:

  • Fix for get_change on history, which was causing issues during discovery.

  • Fix for announcement of participant state, which was sending ParticipantBuiltinData twice.

  • Fix for closing multicast UDP channel.

  • Fix for race conditions in SubscriberHistory, UDPTransportInterface and StatefulReader.

  • Fix for lroundl error on Windows in Time_t.

  • CDR & IDL submodules update.

  • Use of java 1.8 or greater for fastddsgen.jar generation.

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.

Version 1.8.0 (EOL)

This release included the following features:

It also adds the following improvements and bug fixes:

  • Real-time improvements: non-blocking write calls for best-effort writers, addition of fixed size strings, fixed size bitmaps, resource limited vectors, etc.

  • Duration parameters now use nanoseconds.

  • Configuration of participant mutation tries.

  • Automatic calculation of the port when a value of 0 is received on the endpoint custom locators.

  • Non-local addresses are now filtered from whitelists.

  • Optimization of check for acked status for stateful writers.

  • Linked libs are now not exposed when the target is a shared lib.

  • Limitation on the domain ID has been added.

  • UDP non-blocking send is now optional and configurable via XML.

  • Fix for non-deterministic tests.

  • Fix for ReaderProxy history being reloaded incorrectly in some cases.

  • Fix for RTPS domain hostid being potentially not unique.

  • Fix for participants with different lease expiration times failing to reconnect.

Known issues

  • When using TPC transport, sometimes callbacks are not invoked when removing a participant due to a bug in ASIO.

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.

Version 1.7 (EOL)

Version 1.7.3 (EOL)

This release includes the following bugfixes:

  1. Remove inline specifier from public method not defined in header file.

  2. Fix FastRTPS-Gen version generation

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.

Version 1.7.2 (EOL)

This release fixes an important bug:

  • Allocation limits on subscribers with a KEEP_LAST QoS was taken from resource limits configuration and didn’t take history depth into account.

It also has the following improvements:

  • Vendor FindThreads.cmake from CMake 3.14 release candidate to help with sanitizers.

  • Fixed format of gradle file.

Some other minor bugs and performance improvements.

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.

Version 1.7.1 (EOL)

This release included the following features:

  • LogFileConsumer added to the logging system.

  • Handle FASTRTPS_DEFAULT_PROFILES_FILE environment variable indicating the default profiles XML file.

  • XML parser made more restrictive and with better error messages.

It also fixes some important bugs: * Fixed discovery issues related to the selected network interfaces on Windows. * Improved discovery times. * Workaround ASIO issue with multicast on QNX systems. * Improved TCP transport performance. * Improved handling of key-only data submessages.

Some other minor bugs and performance improvements.

KNOWN ISSUES

  • Allocation limits on subscribers with a KEEP_LAST QoS is taken from resource limits configuration and doesn’t take history depth into account.

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.

Version 1.7.0 (EOL)

This release included the following features:

Also bug fixing, allocation and performance improvements.

Note: If you are upgrading from an older version, it is required to regenerate generated source from IDL files using fastddsgen.

Version 1.6 (EOL)

Version 1.6.0 (EOL)

This release included the following features:

Also bug fixing.

Note: If you are upgrading from an older version than 1.4.0, it is advisable to regenerate generated source from IDL files using fastddsgen.

Version 1.5 (EOL)

Version 1.5.0 (EOL)

This release included the following features:

  • Configuration of Fast RTPS entities through XML profiles.

  • Added heartbeat piggyback support.

Also bug fixing.

Note: If you are upgrading from an older version than 1.4.0, it is advisable to regenerate generated source from IDL files using fastddsgen.

Version 1.4 (EOL)

Version 1.4.0 (EOL)

This release included the following:

  • Added secure communications.

  • Removed all Boost dependencies. Fast RTPS is not using Boost libraries anymore.

  • Added compatibility with Android.

  • Bug fixing.

Note: After upgrading to this release, it is advisable to regenerate generated source from IDL files using fastddsgen.

Version 1.3 (EOL)

Version 1.3.1 (EOL)

This release included the following:

  • New examples that illustrate how to tweak Fast RTPS towards different applications.

  • Improved support for embedded Linux.

  • Bug fixing.

Version 1.3.0 (EOL)

This release introduced several new features:

  • 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 1.2 (EOL)

Version 1.2.0 (EOL)

This release introduced two important new features:

  • Flow Controllers: A mechanism to control how you use the available bandwidth avoiding data bursts. The controllers allow you to specify the maximum amount of data to be sent in a specific period of time. This is very useful when you are sending large messages requiring fragmentation.

  • Discovery Listeners: Now the user can subscribe to the discovery information to know the entities present in the network (Topics, Publishers & Subscribers) dynamically without prior knowledge of the system. This enables the creation of generic tools to inspect your system.

But there is more:

  • Full ROS 2 Support: Fast RTPS is used by ROS 2, the upcoming release of the Robot Operating System (ROS).

  • Better documentation: More content and examples.

  • Improved performance.

  • Bug fixing.