Information about the release lifecycle can be found here.

Version 2.6.8

This release includes the following features:

  1. Authentication Handshake Properties documentation.

  2. TCP Client and Server Participant Decision Making.

This release includes the following improvements:

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

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

  3. Effectively assert AUTOMATIC/MANUAL_BY_PARTICIPANT liveliness.

  4. Pick smallest available participant ID for new participants.

  5. Check History QoS inconsistencies.

  6. Add check for XML API to PR template.

  7. LARGE_DATA Participants logic with same listening ports.

TCP transport improvements:

  1. TCP unique client announced local port.

  2. Remove unnecessary TCP warning and Fix some tests.

  3. TCP non-blocking send.

  4. Enabling multiple interfaces through whitelist in TCP servers.

  5. Set real TCP non-blocking-send limitation.

Github CI management:

  1. Refactor Github CI sanitizer related jobs.

  2. Avoid running GitHub CI if PR has conflicts.

  3. Add manual Ubuntu Github CI.

  4. Improve CI version management.

  5. Build ShapesDemo on Ubuntu Github CI.

  6. Only run PRs CI when review is requested.

  7. Add macOS and Ubuntu Github CI.

  8. Build Fast DDS Python bindings in Fast DDS Docs Github CI job.

  9. Pin CMake version and vm.mmap_rnd_bits in sanitizer workflows.

This release includes the following fixes:

  1. Fix and refactor Windows Github CI.

  2. Fix max clash with Windows CI.

  3. Fix the shared memory cleaning script.

  4. Fix doxygen docs warnings. Prepare for compiling with Doxygen 1.10.0.

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

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

  7. Add missing virtual destructor for StatisticsAncillary.

  8. Fix wrong log info messages on TCP.

  9. Migrate apt package installation action to eProsima-CI.

  10. Fix CI documentation workflow label triggering.

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

  12. Fix CVE-2024-28231

  13. Fix data race on PDP.

  14. Discard already processed samples on PDPListener.

  15. Fix flaky Log tests.

  16. Add missing TypeLookup listeners.

  17. Fix hidden overloaded virtual methods.

  18. Fix TCP reconnection after open logical port failure.

  19. Fix CVE-2024-30258 / CVE-2024-30259

  20. Make DataReader::get_first_untaken_info() coherent with read()/take().

  21. Removed warning in ParameterList.

  22. TCP avoid first message loss.

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

This release includes the following features:

  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. Secure discovery server

This release includes the following improvements:

  1. Log warning message upon receiver resource creation failure.

  2. Add tests for reconnection with same GUID

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

  4. Simplify code in CDRMessage.

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

  6. Several improvements on CI jobs.

  7. Upgrade CMake minimum requirement to 3.16.3

  8. Update PR checklist template. Backports and Description

This release includes the following bugfixes:

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

  2. Fix RemoteBuiltinEndpointHonoring blackbox test.

  3. Allow participant profiles with no rtps tag.

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

  5. Fix clang warnings

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

  7. Fix encapsulation format in WLP.

  8. Fix the clang build for clang 14.

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

  10. Updatable disable_positive_acks period.

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

  12. Fix TCP sender resources creation.

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

  14. Add XML parser bit_bound bounds check.

  15. Use FASTRTPS_NO_LIB on unittest root folder.

  16. Use SO_EXCLUSIVEADDRUSE for Win32 unicast listening sockets.

  17. Fix mac address overflow on windows.

  18. Fix PubSubAsReliable test.

  19. Fix FileWatchTest.

  20. Add missing thread include.

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

  22. Better handling of trigger events in docs CI.

  23. Fix memory problem when ciphering payload

  24. Select correct .repos file on push events

  25. Update TLS unit test certificates

  26. Fix bad-free when receiving malformed DATA_FRAG submessage

  27. Fix data race on writer destruction while sending heartbeat

  28. Fix DiscoveryServer list access deadlock

  29. Fix c++11 support for fast discovery server tool

  30. Fix CVE-2023-50257

  31. Fix std::move warning

  32. Fix Github Windows CI

Note

If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.

Version 2.6.6

This release includes the following improvements:

  1. Improve validation on PID_PROPERTY_LIST deserialization.

  2. Improved CPU usage of timed events thread.

  3. Improved performance on intraprocess + data-sharing.

  4. Explicitly register type object in ContentFilteredTopicExample.

  5. Improve installer generation with documentation version fallback.

  6. Improve content filter expression parameters checks and verbosity.

This release includes the following bugfixes:

  1. Fixed long-standing reconnection issues on SHM transport.

  2. Correctly resolve alias in DDSQLFilter.

  3. Fixed partition copy in QoS.

  4. Added length checks to prevent nullptr memory copy calls.

  5. Fixed XMLParser null-dereference when parsing log configuration.

  6. Fixed SHM in 32-bit architectures.

  7. Added missing include.

  8. Avoid double definition of FASTDDS_ENFORCE_LOG_INFO.

  9. Fixed statistics data_count with data-sharing.

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

This release includes the following 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.

This release includes the following bugfixes:

  1. Fix RTPS StatelessWriter ACK check.

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

  3. Add deprecation notice to ThroughputControllerDescriptor.

  4. UBSan (Undefined Behavior Sanitizer) fixes.

  5. Several dependencies fixes upgrading to Ubuntu 22.04.

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

  7. Correctly handle builtin endpoints mask.

  8. Take mutex when removing local reader in WLP.

  9. Handle SIGTERM signal in Fast DDS CLI.

  10. Fix data races in SecurityManager authentication process.

  11. Avoid creating entities within callbacks in DynamicHelloWorldExample.

  12. Remove Asio dependency from DeadlineQoSExample.

  13. Validity check for first sequence number.

  14. Include right header when building for iOS.

  15. Fix build on MSVC 19.

  16. Correctly assign multicast port to multicast initial peers.

  17. Select correct listener for on_requested_deadline_missed().

  18. Forward compatibility with boost inter-process 1.74+.

  19. Fix missing includes when building with GCC 13.

  20. Honor allow_unauthenticated_participants flag.

  21. Capture all Fast CDR exceptions.

  22. Fix example to delete Topic after deleting the corresponding Endpoint.

  23. Protect against uncaught exception in SHM segment creation.

  24. Initial acknack backoff.

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

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

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

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

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

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

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

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