Information about the release lifecycle can be found here.

Version 2.10.3

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. Log warning upon receiver resource creation failure

  2. Simplify code in CDRMessage

  3. Backport workflows from master

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

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

  6. Add CCache to all CI jobs

This release includes the following bugfixes:

  1. Fix RemoteBuiltinEndpointHonoring blackbox test

  2. Fix bad-free when receiving malformed DATA submessage

  3. Fix clang warnings

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

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

  6. Fix the clang build for clang 14

  7. Fix HelloWorld Data-Sharing example idl

  8. Fix the behaviour of disable_positive_acks period

  9. Fix DomainParticipant::register_remote_type return when negotiating type

  10. Fix Data Race when updating liveliness changed in WLP

  11. Fix TCP sender resources creation

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

  13. Add XML parser bit_bound bounds check

  14. Add tests for reconnection with same GUID

  15. Fix Github Windows CI

  16. Fix PubSubAsReliable test

  17. Use FASTRTPS_NO_LIB on unittest root folder

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

  19. Fix mac address overflow on windows

  20. Use SO_EXCLUSIVEADDRUSE for Win32 unicast listening sockets

  21. Fix FileWatchTest for Github windows CI

  22. Add missing thread include

  23. Update TLS unit test certificates

  24. Select correct .repos file on push events

  25. Fix documentation CI branch

  26. Fix TCP deadlock on channel reuse

  27. Fix DNS filter in CMakeLists file for tests

  28. Fix bad-free when receiving malformed DATA_FRAG submessage

  29. Fix memory problem when ciphering payload

  30. Fix build with TLS, but not security

  31. Fix CVE-2023-50257

  32. Fix data race on writer destruction while sending heartbeat

  33. Fix comparison in remove_from_pdp_reader_history

  34. Fix data race in PDPListener and SecurityManager

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

  36. Fix std::move warning

  37. Revert “TCP deadlock on channel reuse”

  38. Fix max clash with Windows CI

  39. Remove unnecessary TCP warning

  40. Discard already processed samples on PDPListener

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

Previous versions

Version 2.10.2

This release includes the following bugfixes:

  1. Fixed long-standing reconnection issue on SHM transport

  2. Fix null dereference when fuzzing

  3. Fix segfault when creating two participant with same fixed id

  4. Fix UBSan (Undefined Behavior Sanitizer) issues

  5. Fix listener selection for on_requested_deadline_missed

  6. Fix build on msvc 19.36.32528

  7. Fix XML schema to set Transport descriptor kind as NOT mandatory

  8. Fix missing includes

  9. Fix overhead time unit

  10. Fix request reply example spelling typo

  11. Fix topic deletion after endpoint in examples

  12. Fix Data-Sharing delivery when data_count is zero

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

  14. Fix alias resolve in DDSSQLFilter

  15. Fix partition copy in QoS

  16. Fix StatelessWriter locators filtering

  17. Fix XMLParser null-dereference in parseLogConfig

  18. Fix encapsulation format in WLP

  19. Replace uint64_t by 8 in alignas specifier

  20. Capture all Fast CDR exceptions

  21. Security module: Honor allow_unauthenticated_participants flag

  22. Explicitly register type object in ContentFilteredTopicExample

  23. Avoid double definition of FASTDDS_ENFORCE_LOG_INFO

  24. Fix API Fast DDS v2.10.0 API break calling correctly on_participant_discovery callbacks

  25. Remove mutex from TimedEventImpl

This release includes the following improvements:

  1. Fix Data-Sharing delivery when data_count is zero

  2. Improve performance of intraprocess plus data-sharing

  3. Improve content filter expression parameters checks and verbosity

  4. Improve validation on PID_PROPERTY_LIST deserialization

  5. Participant ignore local endpoints

  6. Pick smallest available participant ID for new participants

  7. Improve endpoint QoS XML tags

  8. Forward compatibility with boost interprocess 1.74+

  9. Cap Thread Sanitizer memory usage to prevent runner shutdown

  10. Allow participant XML profile with no <rtps> tag

  11. Add unsupported note in API documentation to new ignore DomainParticipantListener callbacks

  12. Add documentation version fallback

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

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

  1. ignore_participant() implementation

This release includes the following bugfixes:

  1. Fix repeated matched event notification.

  2. Fix regression introduced by #3396.

  3. Initial acknack backoff.

  4. Fix regular expression in XML schema.

  5. Correctly assign multicast port to multicast initial peers.

This release includes the following CI improvements:

  1. Update runner and GCC version for Thread Sanitizer job.

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

This minor release includes several new features, improvements and bugfixes.

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.10.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.4.0. Furthermore, if upgrading to v2.10.0, it is also recommended to upgrade Fast CDR to v1.0.27.

This release includes the following features:

  1. New on_unacknowledged_sample_removed callback in DataWriterListener.

  2. Secure Discovery Server.

  3. DomainParticipant ignore empty API.

  4. RTPS ReaderListener::on_incompatible_type and WriterListener::on_incompatible_type empty API.

This release includes the following improvements:

  1. Fast DDS 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. Use standard value for PID_RELATED_SAMPLE_IDENTITY.

  2. Contributions and repository quality
    1. Update Pull Request template.

    2. Update foonathan_memory quality declaration.

    3. Update XSD schema.

    4. Make network headers private avoiding exposing non-public API.

    5. Improve Doxygen documentation for ResourceLimitsQosPolicy.

  3. Examples
    1. New Request-Reply example.

  4. CI improvements
    1. New workflow to check documentation build.

    2. ASAN workflow updated to use Ubuntu 22.04.

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

    2. Upgrade Fast CDR submodule to v1.0.27.

  6. Fast DDS CLI
    1. Handle SIGTERM signal.

  7. Community supported platforms
    1. QNX 7.1 build infrastructure.

This release includes the following fixes:

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

  2. Bugfixes
    1. Fix RTPS StatelessWriter ACK check.

    2. ASAN (Address Sanitizer) fixes.

    3. UBSan (Undefined Behavior Sanitizer) fixes.

    4. Export public API correctly in Windows.

    5. Correctly handle builtin endpoints mask.

    6. Fix backwards compatibility using SHM communication.

    7. Protect against uncaught exception in SHM segment creation.

    8. Fix build for GCC 5.

    9. Validity check for first sequence number.

    10. Fix crash when enabling DisablePositiveACKsQoSPolicy with remote best-effort readers.

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

    2. Fix data races in SecurityManager authentication process.

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

    2. Fix overflow in received samples in performance tests.

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

    2. Remove Asio dependency from DeadlineQoSExample.

  6. Repository fixes
    1. Remove 2.7.x as active branch.

  7. Community supported platforms
    1. Include 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.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.1

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

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

This release includes the following bugfixes:

  1. Fix communication with asymmetric Ignore Participant flags.

  2. Fix deadlock in Writer Liveliness Protocol when using intraprocess.

  3. Fix notification lost.

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

This release includes the following improvements:

  1. Upgrade CMake minimum requirement to 3.13.

  2. Improve Guid_t operator < performance.

This release includes the following bugfixes:

  1. Add python3 dependency to package.xml.

  2. Fix complex member printing for DynamicDataHelper.

  3. Fix selection of output locators.

  4. Fix null references on XML parser.

  5. Fix data races when creating DataWriters.

  6. Send GAPs correctly when using separate sending.

  7. Install Statistics IDL file.

  8. Fixes for building in older compilers.

  9. Fix deadlock when removing DomainParticipant when using SECURITY.

  10. Ensure shared_mutex implementation is consistent throughout supported platforms.

  11. 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.6.2

This release includes the following improvements:

  1. Support for GCC 12.

  2. Overload DataReader::get_unread_count().

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

  4. Improve rediscovery on lossy environments.

This release includes the following bugfixes:

  1. Fixed several deadlocks and data races.

  2. Fixed validation on ParameterPropertyList_t.

  3. Fixed wrong usage of std::remove_if.

  4. Fixed acknowledgement in DataSharing.

  5. 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.6.1

This release includes the following improvements:

  1. Support for writer side content filtering

  2. Support hexadecimal values on SQL filter

  3. Support for DataWriter::get_key_value()

  4. Support for DataReader::lookup_instance()

  5. Support for SampleLostStatus on DataReader

  6. Improved doxygen documentation

Some bugfixes are also included:

  1. Fixed several lock order inversion issues

  2. Fixed data race when closing UDP channels

  3. Fixed empty partition validation checks

  4. Fixed corner case with reliable writers and samples with a huge number of fragments

  5. 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.6.0

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. Some API is also being deprecated.

  • 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. Allow modifying remote server locators at runtime

  2. Add statistics physical information to DATA[p] using properties

  3. Content filter discovery information RTPS API

  4. Endpoint discovery RTPS API

  5. on_sample_lost RTPS API

  6. Transport layer API extension

  7. XML support for Fast DDS CLI

  8. New exchange format to reduce bandwidth in Static Discovery

It also includes the following improvements:

  1. Support lowercase keywords on SQL filter

  2. Separate initialization and enabling of BuiltinProtocols

  3. Add disable_positive_acks to Static Discovery XML

  4. Several updates in the DDS-PIM API

  5. Support for octet vectors on XML parser

  6. Update README and roadmap

  7. Update Fast-CDR submodule to v1.0.24

  8. Add new CMake option APPEND_PROJECT_NAME_TO_INCLUDEDIR

Some bugfixes are also included:

  1. Fix MatchedStatus last_*_handle

  2. Fix recommended statistics DataReaderQos to enable backwards compatibility

  3. Fixes for supporting Python bindings in Windows platforms

  4. Fix publishing physical data on statistics topic

  5. 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.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.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.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.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.3

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

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

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

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