All Versions
31
Latest Version
Avg Release Cycle
25 days
Latest Release
99 days ago

Changelog History
Page 1

  • v6.3.1

    November 28, 2020

    ๐Ÿฑ ๐Ÿš€ Features

    • โฌ†๏ธ Bump internal LightInject version #1161
  • v6.3.0

    November 22, 2020

    ๐Ÿฑ ๐Ÿš€ Features

    • โœจ Enhanced support of amqp connection string #1155

    ๐Ÿš€ The goal of this release is to support this kind of connection string:

    amqp://user:[email protected]:10000/vhost?persistentMessages=false&prefetchCount=2&timeout=1&publisherConfirms=true&name=unit-test&mandatoryPublish=true&connectIntervalAttempt=2&product=product&platform=platform
    

    ๐Ÿ—„ ConnectionConfiguration.AmqpConnectionString is deprecated and preferred way to get ConnectionConfiguration from amqp connection string is to call ConnectionStringParser.Parse.

  • v6.2.0

    November 15, 2020

    ๐Ÿฑ ๐Ÿš€ Features

    • Publishing with mandatory flag #1150

    A global setting MandatoryPublish(or mandatoryPublish=true in the connection string) has been added to allow to FuturePublish, Publish, Request or Send to publish with mandatory flag. If mandatory flag is set for publish and a message is impossible to route to any queue, then EasyNetQ.Producer.PublishReturnedException is raised.

    Mandatory Publish works only if Publisher Confirms is on.

    ๐Ÿ”ง Example of a configuration:

    using var bus = RabbitHutch.CreateBus("host=localhost;mandatoryPublish=true;publisherConfirms=true")
    
  • v6.1.0

    November 10, 2020

    ๐Ÿฑ ๐Ÿš€ Features

    • Non-generic FuturePublish, Publish, Send and Request #1148
  • v6.0.3

    November 09, 2020

    ๐Ÿฑ ๐Ÿ› Bug Fixes

    • โฌ‡๏ธ Downgrade of Microsoft.Extensions.DependencyInjection to 2.0 #1146 to let EasyNetQ.DI.Microsoft be used with AspNetCore < 2.2
  • v6.0.2

    November 06, 2020

    ๐Ÿฑ ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fix logging: arguments could be null #1144
  • v6.0.0

    November 01, 2020

    ๐Ÿš€ This major release has aimed at two following goals:

    โฌ†๏ธ 1. Upgrading of the public interface to comply with modern requirements

    1. Fixing various bugs which were hard to eliminate without complex changes in the internals of the library.

    A full list of changes can be found here.

    โฑ IBus has been split into many interfaces(IPubSub, IRpc, ISendReceive, IScheduler)

    Previously, IBus contained interfaces of three different things(Publish-Subscribe, Rpc and Send-Receive). Also, FuturePublish stuff was an extension to IBus.

    โฑ Now, there are four interfaces(IPubSub, IRpc, ISendReceive, IScheduler) and IBus exposes them.

    Async-first API

    ๐Ÿ‘€ Most of the synchronous methods have been replaced by their asynchronous versions and have been exposed as extensions. In addition, CancellationToken has been added almost everywhere(if you see an async method without it, feel free to create a PR) and it is respected as much as possible.

    Exchange, Queue, Consumer declaration

    ๐Ÿ‘ These declerations have been reworked for better extensibility: now it is possible to use custom arguments everywhere.

    Reconnection mechanics have been reworked

    EasyNetQ completely relies on RabbitMQ.Client reconnection logic, but TopologyRecovery is still disabled.

    Channel per operation

    ๐Ÿ‘€ Several channels are created on the publisher side to mitigate timeout issues caused by a mix of async and rpc commands on the same channel. See #1063 for more details.

    Pulling Consumer

    ๐Ÿ‘ PullingConsumer has been introduced as a replacement for IAdvancedBus.IBasicGetResult Get(IQueue queue): auto ack or manual ack are supported as well as batch acks.

    โฑ Messages priority support in IPubSub, IRpc, ISendReceive and IScheduler

    Nack from IAdvancedBus consumer callback.

    ๐Ÿ‘ Enchanced support of BasicReturn

    โฑ Removal of class constraint from IPubSub, IRpc, ISendReceive and IScheduler

    Strong naming

    ๐Ÿ‘ Basic support of Quorum Queues and Single Active Consumer

    SendReceive.SendAsync doesn't declare a queue anymore

    Other patterns(PubSub, Rpc) worked a bit different from SendReceive before v6: only a consumer side(Subscribe, Respond methods) was responsible for a queue declaration, but the behaviour of SendReceive was different(as you mentioned queue declaration was on a consumer side(Receive method) and on publisher side(Send method) as well).
    ๐Ÿ”ง Declaration of a queue on a publisher side(Send method) limits the way how the queue could be declared(lazy, message TTL, queue limits and a lot of other things) because it looks like mixing both publisher and queue configuration could lead to a mess on a publisher side.

  • v5.6

    October 10, 2020

    ๐Ÿฑ ๐Ÿš€ Features

    • โฑ Deprecation of ExternalScheduler #1125

    โฑ ExternalScheduler has been deprecated and DeadLetterExchangeAndMessageTtlScheduler is a default implementation of Scheduler.
    โฑ All related code for ExternalScheduler has been moved to https://github.com/EasyNetQ/EasyNetQ.Scheduler.

  • v5.5

    October 05, 2020

    ๐Ÿฑ ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fix topic support in DLE+TTL Scheduler #1124

    โฑ It's a breaking change. Please use EnableLegacyDeadLetterExchangeAndMessageTtlScheduler if you need previous behaviour.

  • v5.4.1

    October 04, 2020

    ๐Ÿฑ ๐Ÿš€ Features

    • Hosepipe. Publish messages to a queue instead of an exchange #1122