[go: up one dir, main page]

File: versions.md

package info (click to toggle)
fastdds 3.1.2%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 58,132 kB
  • sloc: cpp: 779,516; xml: 15,119; python: 4,356; sh: 190; makefile: 93; ansic: 12
file content (815 lines) | stat: -rw-r--r-- 35,027 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
Forthcoming
-----------

Version v3.1.2
--------------

* Refactor benchmark example.

Version v3.1.1
--------------

* New property to configure the preferred key agreement algorithm.
* Windows ci example testing infrastructure and `hello world` example.

Version v3.1.0
--------------

* Allow `PERSISTENT_DURABILITY` behaving as `TRANSIENT_DURABILITY`. Fallback to `TRANSIENT_LOCAL_DURABILITY` if no persistence guid is set.
* Fix DomainParticipantQos equality operator by using the new `DomainParticipantQos::compare_flow_controllers`.
* Add new XML QoS overloads for ``DomainParticipant``, ``DataWriter`` and ``DataReader``:
  * ``get_X_qos_from_xml`` (without profile name)
  * ``get_X_qos_from_xml`` (profile name given)
  * ``get_default_X_qos_from_xml``
* Add complete support for dynamic network interfaces.

Version v3.0.0
--------------

* Rename project to `fastdds`.
* Rename environment variable to `FASTDDS_DEFAULT_PROFILES_FILE` and rename default XML profiles file to `FASTDDS_DEFAULT_PROFILES`.
* Remove API marked as deprecated.
* Removed deprecated FastRTPS API tests.
* Removed no longer supported `FASTRTPS_API_TESTS` CMake options.
* RTPS layer APIs refactor:
  * RTPSReader, ReaderListener, ReaderAttributes:
    * Several methods that were meant for internal use have been removed from public API
    * All public methods now have `snake_case` names
    * All public attributes now have `snake_case` names
  * RTPSWriter, WriterListener, WriterAttributes, WriterHistory:
    * The responsibility of managing both the `CacheChange` and `Payload` pools has been moved to the `WriterHistory`.
    * Several methods that were meant for internal use have been removed from public API
    * All public methods now have `snake_case` names
    * All public attributes now have `snake_case` names
  * RTPSParticipant:
    * Some methods changed to `snake_case`: `register_reader`, `register_writer`, `update_reader`, `update_writer`.
	* Register methods take a `TopicDescription` instead of `TopicAttributes`.
	* Update methods no longer take `TopicAttributes`.
  * Endpoint creation fails if the `EntityId` is inconsistent with the topic kind.
* Discovery callbacks refactor:
  * on_participant_discovery now receives a `ParticipantDiscoveryStatus` and a `ParticipantBuiltinTopicData` instead of a `ParticipantDiscoveryInfo`
  * on_data_reader_discovery now receives a `ReaderDiscoveryStatus` and a `SubscriptionBuiltinTopicData` instead of a `ReaderDiscoveryInfo`
  * on_data_writer_discovery now receives a `WriterDiscoveryStatus` and a `PublicationBuiltinTopicData` instead of a `WriterDiscoveryInfo`
* New methods to get local discovery information:
  * `DataWriter::get_publication_builtin_topic_data`
  * `DataReader::get_subscription_builtin_topic_data`
* Public API that is no longer public:
  * XML Parser API no longer public.
  * ReaderProxyData
  * ReaderDiscoveryInfo
  * WriterProxyData
  * WriterDiscoveryInfo
  * ParticiantProxyData
  * ParticiantDiscoveryInfo
  * ParticipantAttributes
  * ReplierAttributes
  * RequesterAttributes
  * PublisherAttributes
  * SubscriberAttributes
  * TopicAttributes
  * All discovery implementation related API
  * ProxyPool
  * Semaphore
  * MessageReceiver
  * BuiltinProtocols
  * Liveliness implementation related API
  * shared_mutex
  * StringMatching
  * TimeConversion
  * TypeLookupService
  * DBQueue
  * UnitsParser
  * ReaderLocator
  * ReaderProxy
  * ChangeForReader
  * ServerAttributes
* Public API headers .h have been renamed to .hpp
* Added create participant methods that use environment XML profile for participant configuration.
* New TypeObjectRegistry class to register/query TypeObjects/TypeIdentifiers.
* New TypeObjectUtils class providing API to build and register TypeObjects/TypeIdentifiers.
* Refactor Dynamic Language Binding API according to OMG XTypes v1.3 specification.
* Refactor ReturnCode complying with OMG DDS specification.
* Calling `DataReader::return_loan` returns `ReturnCode_t::RETCODE_OK` both for empty sequences and for sequences that were not loaned.
* Refactor examples:
  * Hello world example with wait-sets and environment XML profiles.
  * X-Types example with dynamic type discovery and Hello world example compatibility.
  * Configuration example that condenses multiple QoS examples. Multiple configurations allowed through argument parsing.
  * Custom content filter example with lower and upper bounds for data based on the index.
  * Custom payload pool example that uses a user-defined payload pool instead of the default
  * Delivery mechanisms example with SHM, UDP, TCP, data-sharing and intra-process mechanisms.
  * Discovery server example.
  * Flow Controller example with `FlowControllersQos` and property settings.
  * Request-reply example to showcase RPC paradigms over Fast DDS.
  * Security example with environment XML profiles.
  * Static EDP discovery example to avoid EDP meta-traffic.
  * Topic instances example, compatible with _ShapesDemo_ app.
  * RTPS example to show the creation of entities in the RTPS layer.
* Removed `TypeConsistencyQos` from DataReader, and included `TypeConsistencyEnforcementQosPolicy` and `DataRepresentationQosPolicy`
* Added new `flow_controller_descriptor_list` XML configuration, remove `ThroughtputController`.
* Migrate `#define`s within `BuiltinEndpoints.hpp` to namespaced `constexpr` variables.
* Make `StdoutErrConsumer` the default log consumer.
* IPayloadPool refactor:
  * `payload_owner` moved from `CacheChange_t` to `SerializedPayload_t`.
  * `SerializedPayload_t` copies are now forbidden.
  * Refactor of `get_payload` methods.
* Use `PID_DOMAIN_ID` during PDP.
* Creation of RTPS messages refactor:
  * New Gather-send method is now used by default, avoiding an extra copy during the creation of the RTPS message.
  * New attribute in `SendBuffersAllocationAttributes` to configure allocation of `NetworkBuffer` vector.
  * `SenderResource` and Transport APIs now receive a collection of `NetworkBuffer` on their `send` method.
* Migrate fastrtps namespace to fastdds
* Migrate fastrtps `ResourceManagement` API from `rtps/resources` to `rtps/attributes`.
* `const` qualify all data related inputs in DataWriter APIs
* New `DomainParticipantExtendedQos` that includes both `DomainId` and `DomainParticipantQos` (extends `DomainParticipantFactory` API).
* Make Blackbox tests not include any private API.
* Remove all the private API include from Blackbox tests.
* Discovery Server refactor:
  * Clients and Servers no longer need a known GUID to connect between them.
  * Servers are now configured specifying a LocatorList, instead of a RemoteServerAttributes list.
  * Servers connect through a mesh topology. For a new server to join the topology, it must be connected to any server in it.
  * Servers only redirect discovery information of their direct clients.
  * Remote Discovery servers connection list can now be updated and modified at runtime without restrictions.
  * Fast DDS CLI has been updated to allow the creation of servers without GUID.
  * Servers are responsible of answering TypeLookupRequests of others servers when working with X-Types.
  * Backup server is not compatible with X-Types.
* Refactor in XML Parser to return DynamicTypeBuilder instead of DynamicType
* Setting vendor_id in the received CacheChange_t for Data and DataFrag.
* Added new DynamicData to JSON serializer (`json_serialize`).
* Added new DynamicType to IDL serializer (`idl_serialize`).
* DDS implementation of `eprosima::fastdds::Time_t` moved to `eprosima::fastdds::dds::Time_t`.
* `TopicDataType::auto_fill_type_information` has been removed in favor of `fastdds.type_propagation` participant property.
* Add new custom pid PID_PRODUCT_VERSION.
* SHM locator kind is now linked to Fast DDS' major version.

Version 2.14.0
--------------

* Added authentication handshake properties.
* Added methods OpenOutputChannels and CloseOutputChannels to TransportInterface with LocatorSelectorEntry argument.
* Added `netmask_filter`, `allowlist` and `blocklist` transport configuration options.
* Added extra configuration options for the builitin transports.
* Limit the amount of listening ports for TCP servers to 1.

Version 2.13.0
--------------

* Added monitor service feature.
* Enable configuration of thread setting for all threads.
* Added the possibility to define a listening port equal to 0 in TCP Transport
* Added support for TCP to Fast DDS CLI and environment variable
* Enable Discovery Server example through TCP.
* Define a discovery server' super client by environment variable.
* Added the possibility to define interfaces in the whitelist by interface name.
* Added configuration of builtin transports through DomainParticipantQos, environment variable and XML.
* Enable support for DataRepresentationQos to select the CDR encoding.

Version 2.12.0
--------------

* Added participant property to configure SHM transport metatraffic behavior.
  No metatraffic over SHM transport by default.
* Exposed custom payload pool on DDS endpoints declaration
* Processing environment variables on XML text
* Upgrade to support Fast CDR v2.0.0.
  Default encoding is XCDRv1 to maintain interoperability with previous Fast DDS versions.
  Some concerns:
    - Data type source code generated with Fast DDS-Gen v2 should be regenerated using Fast DDS-Gen v3.
    - **API break**. Changed a `MEMBER_INVALID` identifier from a `#define` to a `constexpr`.
      Although this is not a new major version, using a `#define` is a bad conduct which was decided to be changed.
      Note that new `constexpr` is inside namespace `eprosima::fastdds::types`.

Version 2.11.0
--------------

* Added Participant ignore local endpoints feature.
* Remove `FASTDDS_STATIC` CMake option.
  Please, use `BUILD_SHARED_LIBS=OFF` instead.
* Fixed exported symbols on ContentFilteredTopic (ABI break)
* Deprecated the DDS:Crypto:AES-GCM-GMAC plugin configuration through the DomainParticipant PropertyPolicyQos (security vulnerability).
* `DomainParticipantListener::on_participant_discovery` changed behavior (fix API break in 2.10.0).
* Included XML schema for static discovery profile configuration.
* Extend DynamicDataHelper API providing `print` overload with `std::ostream` parameter (API extension in Dynamic Types).
* TypeLookup Service configuration through XML.

Version 2.10.1
--------------

* Added `ignore_participant` implementation.

Version 2.10.0
--------------

* Enabled secure communications on Discovery Server (ABI break on RTPS layer)
* Added non-standard DataWriterListener callback `on_unacknowledged_sample_removed` (API extension on DDS layer).
* Added `RTPSWriter::has_been_delivered` virtual method (ABI break on RTPS layer).
* Refactor `StatefulWriter::get_disable_positive_acks` as virtual method of `RTPSWriter` (ABI break on RTPS layer).
* Network headers made private (ABI break on RTPS layer).
* Added ignore RTPS entity API in RTPSParticipant (ABI break on RTPS layer).
* Overload `PDP::removeWriterProxyData` and `PDP::removeReaderProxyData` (ABI break on RTPS layer).
* Overload RTPS discovery callbacks in RTPSParticipantListener (ABI break on RTPS layer).
* Overload DDS discovery callbacks in DomainParticipantListener (ABI break on DDS layer).
* Added on_incompatible_type to RTPS listeners (ABI break on RTPS layer).
* Added support for QNX 7.1 build.

Version 2.9.0
-------------

* Default memory management policy set to `PREALLOCATED_WITH_REALLOC_MEMORY_MODE` (behaviour change)
* Statistics metrics are only calculated/accumulated when their corresponding DataWriter is enabled (behaviour change)
* Added new log macros `EPROSIMA_LOG_INFO`, `EPROSIMA_LOG_WARNING` and `EPROSIMA_LOG_ERROR`, and change all old macros `logInfo`, `logWarning`, and `logError` in the project.
* Added `ENABLE_OLD_LOG_MACROS` CMake option to support disabling the compilation of old log macros `logInfo`, `logWarning`, and `logError`.
* FASTDDS_STATISTICS build option set to ON by default
* Added XML profile validation option as a CLI new verb task: `"fastdds xml validate <xml_file(s)_path>"`. Added tests due to this new feature.

Version 2.8.0
-------------

* Added API get the WAN address of TCPv4 transport descriptors (API extension)
* Support `propagate` attribute for Properties in PropertyQoSPolicies so they could be
  set by user and sent in PDP
* Added possibility to configure Ownership and Ownership Strength QoS Policies from XML profiles file
* Added Server Name Indication (SNI) support for TLS-TCP communication
* Changes to allow running tests on Android emulator or device
* Added configuration settings for announcing locators on external LANs (ABI break)

Version 2.7.1
-------------

* ReadCondition implementation according to DDS version 1.4 standard document
* Added a new CMake option to allow users to force the use of our third party shared_mutex

Version 2.7.0
-------------

* Implementation of DataWriter methods write_w_timestamp, register_instance_w_timestamp,
  unregister_instance_w_timestamp, and dispose_w_timestamp (ABI break)
* Support of `SampleRejectedStatus` in DDS API (API extensions on RTPS layer)
* Implementation of DomainParticipant method find_topic
* Include Server Name Indication (SNI) empty API (ABI break on transport layer)
* CacheChange_t destructor made virtual (ABI break on RTPS layer)
* Added DDS APIs for ReadCondition (API extension)
* Added bulk notification interface to RTPS reader listener (API extension)
* Refactor of auxiliary utils class DBQueue (ABI break)
* Added configuration data for external locators feature (ABI break)

Version 2.6.1
-------------

* Writer side content filter.
* Implementation for DataWriter::get_key_value.
* Implementation for DataReader::lookup_instance.
* Support of `SampleLostStatus` in DDS API.

Version 2.6.0
-------------

* New TransportInterface and NetworkFactory API to allow updating the network interfaces at runtime (ABI breaks on RTPS
  and transport layers)
* Removed dll export for constructors and destructors of factory created entities (breaks ABI)
* Allow modifying the remote server locator in runtime.
* Add physical information in DATA[p] using properties
* Extension of `DISCOVERY_TOPIC` to include physical information about the discovered entity (ABI break)
* Added methods getting `fastdds::Time_t` as parameters instead of `fastdds::rtps::Time_t` (API extension, API
  deprecations).
* Changed signature of eprosima::fastdds::dds::DataWriter::dispose_w_timestamp (ABI break).
* Added method getting `std::vector<InstanceHandle_t>&` instead of `std::vector<InstanceHandle_t*>&` (API extension, API
  deprecations).
* Added RTPS APIs for content filter discovery information (API extension)
* Added RTPS APIs for endpoint discovery (API extension)
* Added RTPS APIs for on_sample_lost feature (API extension)

Version 2.5.0
-------------

* Allow zero-valued InstanceHandle_t (ABI break)
* Allow concatenation of transports (new exported symbols + ABI breaks on transport layer)
* New DomainParticipantFactory API for loading XML profiles from a string data buffer (extends DomainParticipantFactory
  API, implies ABI break)
* New DataWriter API allowing to wait for acknowledgements for a specific instance (extends DataWriter API, implies ABI
  break)
* Generation of GUID on entity creation (ABI break on RTPS layer)
* New DataReader history with correct implementation of instance_state and view_state (ABI break on RTPS layer)
* Support for PKCS#11 format URIs for private keys

Version 2.4.0
-------------

* Implementation of WaitSet, GuardCondition and StatusCondition.
* Flow controllers (ABI breaks on RTPS layer).
* Resolve DNS names on locators.
* Allow addition of discovery servers in runtime (ABI breaks on RTPS layer).
* Allow setting custom folder for data sharing files.
* Allow setting persistence guid with static discovery.

Version 2.3.0
-------------

* New Fast DDS Statistics module
* New discovery "super-client" kind
* Added methods to get sending locators for writers and listening locators for readers (ABI break)
* Added support for unique network flows
* Added reception_timestamp to `eprosima::fastdds::dds::SampleInfo` (ABI break)
* Added `eprosima::fastdds::dds::DataReader::get_unread_count` (ABI break)
* Refactor `eprosima::fastdds::type::ReturnCode_t`. Now the constant global objects are no longer available (ABI break)
* Performance tests refactored to use DDS-PIM high-level API

Version 2.2.0
-------------

* TopicDataType interface extended (ABI break)
* Upgrade to Quality Level 1
* New DataWriter API for loaning samples (extends DataWriter API, implies ABI break)
* New template classes for loanable sequences
* Added DataReader read and take APIs (implies ABI break)
* Complete DDS traditional C++ API (implies ABI breaks)
* Data sharing delivery (ABI breaks)

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 follwing **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

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

Version 2.0.1
-------------

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

Version 2.0.0
-------------

This release has the following **API breaks**:

* eClock API, which was deprecated on v1.9.1, has been removed
* `eprosima::fastdds::rtps::RTPSDomain::createParticipant` methods now have an additional first argument `domain_id`
* Data member `domainId` has been removed from `eprosima::fastdds::rtps::RTPSParticipantAttributes` and added to
  `eprosima::fastdds::ParticipantAttributes`

Users should also be aware of the following **deprecation announcement**:

* All classes inside the namespace `eprosima::fastdds` should be considered deprecated.
  Equivalent functionality is offered through namespace `eprosima::fastdds`.
* Namespaces beneath `eprosima::fastdds` are not included in this deprecation, i.e.
  `eprosima::fastdds::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 <https://www.omg.org/spec/DDS/1.4>`_
* 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.0
--------------

This release adds the following features:

* New built-in :ref:`comm-transports-shm`
* 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.

Version 1.9.4
-------------

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.

Version 1.9.3
-------------

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.


Version 1.9.2
-------------

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.

Version 1.9.1
-------------

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

Version 1.9.0
-------------

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.

Version 1.8.4
-------------

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.

Version 1.8.3
-------------

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.

Version 1.8.2
-------------

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

Version 1.8.1
-------------

This release includes the following features:

* Implementation of :ref:`livelinessqospolicy` QoS.

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 fastrtpsgen.jar generation.

Version 1.8.0
-------------

This release included the following features:

* Implementation of IDL 4.2.
* Implementation of :ref:`deadlineqospolicy` QoS.
* Implementation of :ref:`lifespanqospolicy` QoS.
* Implementation of :ref:`disablepositiveacksqospolicy` QoS.
* Secure sockets on TCP transport (:ref:`TLS`).

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.

Version 1.7.2
-------------

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.

Version 1.7.1
-------------

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.

Version 1.7.0
-------------

This release included the following features:

* :ref:`comm-transports-tcp`.
* :ref:`dynamic-types`.
* Security 1.1 compliance.

Also bug fixing, allocation and performance improvements.

Version 1.6.0
-------------

This release included the following features:

* :ref:`persistence`.
* Security access control plugin API and builtin :ref:`access-permissions` plugin.

Also bug fixing.

Version 1.5.0
-------------

This release included the following features:

* Configuration of Fast RTPS entities through XML profiles.
* Added heartbeat piggyback support.

Also bug fixing.

Version 1.4.0
-------------

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.

Version 1.3.1
-------------

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

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

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 ROS2 Support: Fast RTPS is used by ROS2, the upcoming release of the Robot Operating System (ROS).
* Better documentation: More content and examples.
* Improved performance.
* Bug fixing.