Skip to content

Releases: rabbitmq/rabbitmq-dotnet-client

6.0.0

08 Jul 08:57
v6.0.0
a50334f
Compare
Choose a tag to compare

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

19 Jun 08:09
60226be
Compare
Choose a tag to compare

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

26 Sep 10:18
Compare
Choose a tag to compare

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

29 Mar 08:43
Compare
Choose a tag to compare

Changes Between 4.1.2 and 4.1.3

Backport exchange bind fix from master

GitHub issue: rabbitmq-dotnet-client#317

v4.1.1

04 Nov 19:06
Compare
Choose a tag to compare

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

v4.1.0

27 Oct 20:34
Compare
Choose a tag to compare

Changes Between 4.0.2 and 4.1.0

This release is available from NuGet.

No lock contention at consumer work service

Switched to a "thread-per-model" approach in the ConsumerWorkService.

The TaskScheduler property on ConnectionFactory has been obsoleted and can no
longer be used to control concurrency.

Utility class changes:

  • BatchingWorkPool has been removed
  • ConsumerWorkService no longer has a constructor that takes a TaskScheduler
  • ConsumerWorkService.MAX_THUNK_EXECUTION_BATCH_SIZE has been removed
  • ConsumerWorkService no longer has the ExecuteThunk or RegisterKey methods

Contributed by Brandon Ording and Szymon Kulec.

GH issue: rabbitmq-dotnet-client#251

v4.0.2

26 Aug 09:25
Compare
Choose a tag to compare

Changes Between 4.0.1 and 4.0.2

This release is available from NuGet.

TcpClientAdapter Didn't Respect IP Address Family

GH issue: rabbitmq-dotnet-client#244

v4.0.1

26 Aug 09:11
Compare
Choose a tag to compare

Changes Between 4.0.0 and 4.0.1

This release is available from NuGet.

ConnectionFactory#CreateConnection Deadlock

ConnectionFactory#CreateConnection could deadlock in some circumstances.

GH issue: rabbitmq-dotnet-client#239.

Occasional NullReferenceException in Endpoint Resolution

GH issue: rabbitmq-dotnet-client#238

4.0.0

22 Aug 11:52
Compare
Choose a tag to compare

4.0.0 is a general availability release of version 4.0

Changes

4.0 RC1

03 Aug 14:47
Compare
Choose a tag to compare
4.0 RC1 Pre-release
Pre-release

4.0 RC1 is a release candidate release for version 4.0

Changes