- Test release
- Update RabbitMQ client dependency to 4.0.1
- Update target framework to .NET 4.5.2
- Test release
- More convenient namespaces
- Release 2.0.0
- Update to Rebus 3
- Update to Rebus 4
- Add .NET Core support (netstandard1.5)
- Change node failover strategy to rely on built-in capabilities of the driver - thanks samartzidis
- Fix credentials issue - thanks samartzidis
- Fix weird dependency on NUnit test adapter - thanks bzuu
- Add support for priority queues (requires RabbitMQ 3.5) - thanks K3llr
- Ability to configure SSL settings - thanks nebelx
- Additional configuration overloads to allow for passing custom connection information to the RabbitMQ connection factory - thanks nebelx
- Update RabbitMQ client dependency to v. 5.0.1 - thanks dougkwilson
- Handle
SecurityException
when trying to figure out which machine we're running on - thanks samartzidis
- Minor tweak to avoid potential dictionary trouble with double-adding - thanks samartzidis
- Add callback to allow for customizing the
IConnectionFactory
instance used by the transport - Make assembly non-CLS compliant (necessary to be able to customize RabbitMQ's connection factory)
- Automatically create input queue if it suddenly disappears while the app is running - thanks pjh1974
- Change how models are managed to maximise reuse and improve performance
- Don't log that silly
EndOfStreamException
, because that's apparently how the RabbitMQ driver rolls... - Add support for enabling publisher confirms - thanks hansehe
- Complete support for publishing on alternate exchanges via the
@
syntax (topics like<topic-name>@<exchange-name>
) - thanks hansehe
- Improve publisher confirms performance when sending batches (i.e. multiple outgoing messages from Rebus handlers, or when using
RebusTransactionScope
) - thanks kyrrem
- Add user ID header to incoming message if set on RabbitMQ transport message - thanks michalsteyn
- Add ability to set auto-delete TLL when enabling it - thanks ronnyek
- Fix "invalid arg 'x-expires' for queue" error - thanks jarikp
- Little fix that enables graceful handling of disappearing input queue - thanks jarikp
- Fix auto-delete support, which would make it impossible to configure queue TTL unless auto-delete was ON (but these things are not dependent) - thanks jarikp
- Fix connection name feature - thanks jarikp
- Decode MIME type of Rebus'
rbs2-content-type
header and pass as separate content type/encoding headers in RabbitMQ props
- Update to Rebus 6 - thanks rsivanov
- Add support for subscribing to exchange-qualified topics via the
topic@exchange
syntax, so you can e.g.await bus.Advanced.Topics.Subscribe("some-topic@some-exchange")
- Enable publisher confirms by default, because otherwise RabbitMQ can LOSE your messages after you publish them! Use
RebusTransactionScope
to batch send operations to be able to send faster, reliably, OR add Rebus'rbs2-express
header (viaHeaders.Express
) to easily opt out of end-to-end durability alltogether.
- Add explicit support for handling of separate RabbitMQ correlation ID, passed to Rebus as
rabbitmq-corr-id
- Get rid of closed connections quicker, when there has been a connection outage
- Add ability to set queue options to use when creating queues other than the input queue. Useful to ensure that an automatically declared error queue has some specific properties applied to it.
- Update RabbitMQ client to 6.0 - thanks mathiasnohall
- Add code to manually transfer basic auth credentials from connection string to connection factory
- In RabbitMqTransport.Receive call QueueDeclarePassive only if declare input queue is true - thanks marcoariboni
- Use
Stopwatch
instead ofDateTime.Now
inSharedQueue
to do the timeout math - More push-based operations - thanks zlepper
- Truncate header values when they're too big to fit - thanks zlepper
- Detect errors in connections used for outgoing messages and throw them out if they fail
- Add another channel re-initialization case - thanks zlepper
- Remove useless logging around dequeueing operation
- Block on empty queue instead of returning NULL after a few seconds.
- Support basic URL-encoded credentials in URI
- Make publisher confirms timeout configurable via an additional
EnablePublisherConfirms
overload
- Small optimizations to reduce the amount of work done when mapping headers
- Update RabbitMq.Client dependency to 6.4.0
- Avoid creating a RabbitMQ connection during initialization, if there's no need for it because all declarations have been disabled
- Enable retries when trying to create a queue
- Add experimental support for sending deferred messages using the RabbitMQ Delayed Message Exchange plugin (use
.Timeouts(t => t.UseDelayedMessageExchange("RebusDelayed"))
)
- Update Rebus dependency to 7
- Correct how hostnames are passed to RabbitMQ's connection factory to enable proper failover
- Update to Rebus 8
- Change SSL protocol default to NONE (i.e. leave it to the .NET framework or the operating system) - thanks MrAdam
- Don't set URI on RabbitMQ's own connection factory to have it correctly be able to fail over when running with multiple nodes
- Make 1/100th as many defensive calls to
QueueDeclarePassive
in the transport'sReceive
method - Fix bug that would accidentally use a /-prefixed virtual host when a virtual host was actually specified in the URI
- Update RabbitMq.Client to 6.6.0
- Implement support for providing the delivery count from
x-delivery-count
when available (which is is on quorum queues) - Fix passing of SSL options - thanks yuriyostapenko
- Update to Rebus 8.2.2
- Add optional batching, which can be enabled by calling
.SetBatchSize(n)
on the RabbitMQ configuration builder
- Fix bug that would accidentally use the
@
-prefixed exchange name when declaring it
- Enable setting the consumer tag - thanks savissimo
- Get delivery count with
BitConverter
if the header value isbyte[]
- Interpret delivery count header value as ASCII text with a number, when the type encountered is
byte[]
- Ensure that RabbitMQ's built-in quorum queue header
x-delivery-count
is cleared when a message is dead-lettered
- Screen the
IModel
for fitness before trying to send with it, and perform send operations with up to 3 attempts to hopefully better overcome transient errors