Releases: rabbitmq/rabbitmq-dotnet-client
6.3.0
6.2.4
GitHub milestone: 6.2.4
This release contains some important bug fixes:
6.2.3
Please refer to the changelog and associated milestones:
6.2.1
Changes Between 6.1.0 and 6.2.1
This releases primarily focuses on efficiency improvements and addressing
bugs introduced in 6.x
releases.
A full list of changes can be found in the GitHub milestone: 6.2.0
.
Key highlights include:
-
Concurrent publishing on a shared channel is now safer. We still recommend avoiding it when possible
but safety properties have been improved by changing how outgoing frame sequences are serialised.Contributed by @bollhals.
GitHub issue: #878
-
Batch publishing using
System.ReadOnlyMemory<byte>
payloads instead of byte arrays.Contributed by @danielmarbach.
6.1.0
6.0.0
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
RabbitMQ .NET client 5.1.0
Changes Between 5.0.x and 5.1.0
Batch Publishing
GitHub PR: rabbitmq-dotnet-client#368
Introduced a Static Property to AmqpTcpEndpoint to specify the default TLS Protocol Version(s)
GitHub PR: rabbitmq-dotnet-client#389
All Exceptions are Collected When Selecting an Endpoint
GitHub PR: rabbitmq-dotnet-client#377
Reduced Lock Contention for Frame Writes
GitHub PR: rabbitmq-dotnet-client#354
RabbitMQ .NET client 5.0.1
Changes Between 4.1.x and 5.0.1
4.x and 5.x releases of this client are distributed exclusively via NuGet.
Async consumers
GitHub PR: rabbitmq-dotnet-client#307
Enable connection recovery by default
GitHub issue: rabbitmq-dotnet-client#271
Replace Console.WriteLine logging with EventSource
GitHub issue: rabbitmq-dotnet-client#94
Add events for connection recovery errors and connection success
GitHub issue: rabbitmq-dotnet-client#156
noAck renamed to autoAck
GitHub issue: rabbitmq-dotnet-client#255
Make uri and Uri setters in ConnectionFactory obsolete
GitHub issue: rabbitmq-dotnet-client#264
Ensure connection recovery does not keep going after the connection has been closed
GitHub issue: rabbitmq-dotnet-client#294
Synchronize access to the manuallyClosed field in AutorecoveringConnection.
GitHub issue: rabbitmq-dotnet-client#291
Use concurrent collections inside AutorecoveringConnection
GitHub issue: rabbitmq-dotnet-client#288
Add property to allow an endpoint to specify the address family
GitHub issue: rabbitmq-dotnet-client#226
Fix potential EventingBasicConsumer race condition
Re-introduce a Uri property on IConnectionFactory
GitHub issue: rabbitmq-dotnet-client#330
Add CreateConnection overload to IConnectionFactory
GitHub PR: rabbitmq-dotnet-client#325
v4.1.3
Changes Between 4.1.2 and 4.1.3
Backport exchange bind fix from master
GitHub issue: rabbitmq-dotnet-client#317
v4.1.1
Changes Between 4.1.0 and 4.1.1
This release is available from NuGet.
Fixed XML Documentation Generation
GitHub issue: rabbitmq-dotnet-client#269
Contributed by Brandon Ording.
Fixed WinRT Project Build
GitHub issue: rabbitmq-dotnet-client#270
Contributed by Brandon Ording.
TcpClientAdapter
Nullifies Socket Field on Close
GitHub issue: rabbitmq-dotnet-client#263
HeartbeatReadTimerCallback
Handles Potential NullReferenceException
GitHub issue: rabbitmq-dotnet-client#257