Information about the release lifecycle can be found here.

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.

Previous versions

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

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

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.