Releases: eProsima/Fast-DDS
v2.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
PRs in merge order:
#1564, #1571, #1574, #1643, #1645, #1723, #1729, #1726, #1736, #1756, #1760, #1752, #1773, #1776, #1792, #1797, #1798, #1813, #1848
v2.2.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:
- 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
v2.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 follwing features:
- Support persistence for large data
- Added support for
on_requested_incompatible_qos
andon_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
v2.0.2
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
PRs in merge order:
#1320 #1317 #1329 #1325 #1330 #1326 #1367 #1331 #1267 #1382 #1386 #1384 #1398 #1456 #1444 #1466 #1463 #1469 #1490 #1475 #1514 #1513 #1515 #1520 #1516 #1526 #1549 #1554 #1557 #1555 #1551
v2.0.1
v2.0.0
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 argumentdomain_id
- Data member
domainId
has been removed fromeprosima::fastrtps::rtps::RTPSParticipantAttributes
and added toeprosima::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 namespaceeprosima::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
v1.8.4
This release adds the following feature:
- XML profiles for
requester
andreplier
It also have the following important bug fixes:
- Solved an issue when recreating a publishing participant with the same GUID (either on purpose or by chance)
- Solved issue #1042, 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.
v1.10.0
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.
Several bug fixes on discovery server:
- Fixed local host communications.
- Correctly trimming server history.
- Fixed backup server operation.
- Fixed timing issues.
v1.9.4
This release includes 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.
It also adds 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.
v1.9.3
This release includes the following features:
- Participant discovery filtering flags.
- Intra-process delivery mechanism opt-in.
It also adds 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 thirdparty options are off
- Allow XMLProfileManager methods to not show logError messages if a profile is not found.