Shuttle.Hopper.RabbitMQ
21.0.0-alpha
Prefix Reserved
dotnet add package Shuttle.Hopper.RabbitMQ --version 21.0.0-alpha
NuGet\Install-Package Shuttle.Hopper.RabbitMQ -Version 21.0.0-alpha
<PackageReference Include="Shuttle.Hopper.RabbitMQ" Version="21.0.0-alpha" />
<PackageVersion Include="Shuttle.Hopper.RabbitMQ" Version="21.0.0-alpha" />
<PackageReference Include="Shuttle.Hopper.RabbitMQ" />
paket add Shuttle.Hopper.RabbitMQ --version 21.0.0-alpha
#r "nuget: Shuttle.Hopper.RabbitMQ, 21.0.0-alpha"
#:package Shuttle.Hopper.RabbitMQ@21.0.0-alpha
#addin nuget:?package=Shuttle.Hopper.RabbitMQ&version=21.0.0-alpha&prerelease
#tool nuget:?package=Shuttle.Hopper.RabbitMQ&version=21.0.0-alpha&prerelease
Shuttle.Hopper.RabbitMQ
This RabbitMQ implementation follows the at-least-once delivery mechanism supported by Shuttle.Hopper.
If necessary you may want to use an outbox for a store-and-forward solution. By using a transactional outbox such as the Shuttle.Hopper.Sql.Queue implementation you could roll back sending of messages on failure.
Installation
If you need to install RabbitMQ you can <a target='_blank' href='https://www.rabbitmq.com/download.html'>follow these instructions</a>.
Configuration
The URI structure is rabbitmq://configuration-name/queue-name.
services.AddRabbitMQ(builder =>
{
builder.AddOptions("local", new RabbitMQOptions
{
ConnectionFactory = new RabbitMQ.Client.ConnectionFactory(),
Host = "127.0.0.1",
VirtualHost = "/",
Port = -1,
Username = "shuttle",
Password = "shuttle!",
PrefetchCount = 25,
QueueTimeout = TimeSpan.FromMilliseconds(25),
RequestedHeartbeat = TimeSpan.FromSeconds(30),
ConnectionCloseTimeout = TimeSpan.FromSeconds(1),
OperationRetryCount = 3,
UseBackgroundThreadsForIO = true,
Priority = 0,
Persistent = true,
Durable = true
});
});
The default JSON settings structure is as follows:
{
"Shuttle": {
"RabbitMQ": {
"local": {
"Host": "127.0.0.1",
"VirtualHost": "/",
"Port": -1,
"Username": "shuttle",
"Password": "shuttle!",
"PrefetchCount": 25,
"QueueTimeout": "00:00:25",
"RequestedHeartbeat": "00:00:30",
"ConnectionCloseTimeout": "00:00:01",
"OperationRetryCount": 3,
"UseBackgroundThreadsForIO": true,
"Priority": 0,
"Persistent": true,
"Durable": true
}
}
}
}
Options
| Option | Default | Description |
|---|---|---|
ConnectionFactory |
null |
The RabbitMQ.Client.ConnectionFactory instance. If null and instance will be created and populated using the relevant values in the options; else it should be pre-configured fully. |
Host |
The RabbitMQ host to connect to. | |
VirtualHost |
"/" |
The virtual host to connect to. |
Port |
-1 | Specifies the port to connect to. A value of -1 represents AmqpTcpEndpoint.UseDefaultPort. |
Username |
The username to send as a credential. | |
Password |
The password to send as a credential. | |
PrefetchCount |
25 | Specifies the number of messages to prefetch from the queue. |
QueueTimeout |
00:00:25 |
How long to wait when retrieving a message from the queue before timing out and returing null. |
RequestedHeartbeat |
00:00:30 |
Heartbeat timeout to use when negotiating with the server. |
ConnectionCloseTimeout |
00:00:01 |
The duration to wait wait for connections to be closed. |
OperationRetryCount |
3 | How many times to retry relevant queue operations in the event that they fail. Once the retries have run out the original exception is thrown. |
UseBackgroundThreadsForIO |
true |
Determines whether background threads are used for the I/O loop. |
Priority |
0 | Determines the number of priorities (x-max-priority) supported by the queue. |
Persistent |
true | Determines whether messages will be persisted. Please be sure of the possible consequences before setting to 'false'. |
Durable |
true | Determines whether the queue is durable. Please be sure of the possible consequences before setting to 'false'. |
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- RabbitMQ.Client (>= 7.2.0)
- Shuttle.Hopper (>= 21.0.0-alpha)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 21.0.0-alpha | 39 | 1/18/2026 |