Skip to content

6.0.0

Compare
Choose a tag to compare
@michaelklishin michaelklishin released this 08 Jul 08:57
v6.0.0
a50334f

Changes Between 5.2.0 and 6.0.0

This major release of this client introduces substantial improvements
in terms of memory footprint and throughput. They come at the cost
of minor but important breaking API changes covered below.

The client now requires .NET Framework 4.6.1 or .NET Standard 2.0.
Earlier versions are no longer supported by the 6.x series.

Key improvements in this release have been the result of hard work by
our stellar community members (in no particular order): @stebet, @bording,
@Anarh2404, @danielmarbach, and others.

A full list of changes can be found in the GitHub milestone: 6.0.0.

The Switch to System.Memory (and Significantly Lower Memory Footprint that Comes with It)

The client now uses the System.Memory library for message and command payloads. This significantly
reduces object allocation and GC pressure for heavy workloads but also
potentially requires application changes: consumer delivery payloads are now of instance System.ReadOnlyMemory<byte>
instead of byte[].

While there's an implicit conversion for these types,
instances of System.ReadOnlyMemory<byte> must be copied or consumed/deserialised before delivery handler completes.
Holding on to delivered payloads and referencing them at a later point is no longer safe.

The same applies to publishers and the IModel.BasicPublish method: prefer using System.ReadOnlyMemory<byte>
over byte[] and dont' assume that this memory can be retained and used outside of the scope of the publishing
function.

GitHub issue: #732

Timeouts Use System.TimeSpan

All timeout arguments now use System.TimeSpan values.

GitHub issue: #688

Reduced Public API Surface

No major changes here but this is potentially breaking. Only public classes that were never meant
to be publicly used have been turned internal to the client.

GitHub issue: #714

Requires .NET Framework 4.6.1 or .NET Standard 2.0

The client now requires .NET Framework 4.6.1 or .NET Standard 2.0. Earlier versions are no longer
supported.

GitHub issue: #686

Microsoft.Diagnostics.Tracing.EventSource Dependency Dropped

Microsoft.Diagnostics.Tracing.EventSource dependency has been removed. It was an annoying
dependency to have for some environments.

Source Linking

The library now supports source linking.

GitHub issue: #697

NuGet Source Packages

Source packages are now also distributed via NuGet.

CRL Checks for Server x.509 (TLS) Certificates

Added a TLS option to enforce CRL checks for server certificates.

GitHub issue: #500