Foundatio.RabbitMQ
13.0.0
Prefix Reserved
dotnet add package Foundatio.RabbitMQ --version 13.0.0
NuGet\Install-Package Foundatio.RabbitMQ -Version 13.0.0
<PackageReference Include="Foundatio.RabbitMQ" Version="13.0.0" />
<PackageVersion Include="Foundatio.RabbitMQ" Version="13.0.0" />
<PackageReference Include="Foundatio.RabbitMQ" />
paket add Foundatio.RabbitMQ --version 13.0.0
#r "nuget: Foundatio.RabbitMQ, 13.0.0"
#:package Foundatio.RabbitMQ@13.0.0
#addin nuget:?package=Foundatio.RabbitMQ&version=13.0.0
#tool nuget:?package=Foundatio.RabbitMQ&version=13.0.0
Pluggable foundation blocks for building loosely coupled distributed apps.
โจ Why Choose Foundatio?
- ๐ Pluggable implementations - Swap Redis, Azure, AWS, or in-memory with no code changes
- ๐งช Developer friendly - In-memory implementations for fast local development and testing
- ๐ DI native - Built for Microsoft.Extensions.DependencyInjection
- ๐ฏ Interface-first - Code against abstractions, not implementations
- โก Production ready - Battle-tested in high-scale applications
- ๐ Consistent APIs - Same patterns across caching, queues, storage, and more
๐งฑ Core Building Blocks
| Feature | Description |
|---|---|
| Caching | In-memory, Redis, and hybrid caching with automatic invalidation |
| Queues | Reliable message queuing with Redis, Azure, AWS SQS |
| Locks | Distributed locking and throttling |
| Messaging | Pub/sub with Redis, RabbitMQ, Kafka, Azure Service Bus |
| Jobs | Background job processing with queue integration |
| File Storage | Unified file API for disk, S3, Azure Blob, and more |
| Resilience | Retry policies, circuit breakers, and timeouts |
๐ Quick Start
dotnet add package Foundatio.RabbitMQ
// Messaging
IMessageBus messageBus = new RabbitMQMessageBus(o => o
.ConnectionString("amqp://localhost"));
await messageBus.PublishAsync(new MyMessage { Data = "Hello" });
๐ฆ Provider Implementations
| Provider | Caching | Queues | Messaging | Storage | Locks |
|---|---|---|---|---|---|
| In-Memory | โ | โ | โ | โ | โ |
| Redis | โ | โ | โ | โ | โ |
| Azure Storage | โ | โ | |||
| Azure Service Bus | โ | โ | |||
| AWS (S3/SQS/SNS) | โ | โ | โ | ||
| RabbitMQ | โ | ||||
| Kafka | โ | ||||
| Minio | โ | ||||
| Aliyun | โ | ||||
| SFTP | โ |
๐ Learn More
Delayed Message Delivery
Foundatio.RabbitMQ supports delayed message delivery via the DeliveryDelay option on PublishAsync.
Current behavior:
- RabbitMQ < 4.3 with plugin installed: If the
rabbitmq_delayed_message_exchangeplugin is detected, it is used for delayed delivery. A warning is logged because the plugin is deprecated and will not work on RabbitMQ 4.3+. - RabbitMQ < 4.3 without plugin: Falls back to an in-memory delay scheduler provided by
MessageBusBase. Messages are held in process memory and delivered after the delay. This is not durable -- delayed messages are lost if the process restarts. - When the RabbitMQ server version is detected as >= 4.3: The plugin probe is skipped (the plugin depends on Mnesia, which was removed in 4.3), and the in-memory fallback is used automatically. If the server version cannot be determined from
ServerProperties["version"], the probe may still be attempted before falling back.
Migration guidance:
The rabbitmq_delayed_message_exchange plugin is archived and no longer maintained. RabbitMQ 4.3 removes Mnesia, making the plugin incompatible. If you rely on delayed messages:
- On RabbitMQ < 4.3: The plugin still works but logs a deprecation warning at startup.
- On RabbitMQ >= 4.3: Delayed messages use the in-memory fallback automatically. Be aware that these are not durable across process restarts.
- For durable delayed delivery on RabbitMQ 4.3+, consider implementing TTL + Dead-Letter Exchange patterns or using an external scheduler.
Core Features
- Getting Started - Installation and setup
- Caching - In-memory, Redis, and hybrid caching with invalidation
- Queues - FIFO message delivery with lock renewal and retry policies
- Locks - Distributed locking with null handling patterns
- Messaging - Pub/sub with size limits and notification patterns
- File Storage - Unified file API across providers
- Jobs - Background job processing and hosted service integration
Advanced Topics
- Resilience - Retry policies, circuit breakers, and timeouts
- Serialization - Serializer configuration and performance
- Dependency Injection - DI setup and patterns
- Configuration - Options and settings
๐ฆ CI Packages (Feedz)
Want the latest CI build before it hits NuGet? Add the Feedz source and install the pre-release version:
dotnet nuget add source https://f.feedz.io/foundatio/foundatio/nuget -n foundatio-feedz
dotnet add package Foundatio.RabbitMQ --prerelease
Or add to your NuGet.config:
<configuration>
<packageSources>
<add key="foundatio-feedz" value="https://f.feedz.io/foundatio/foundatio/nuget" />
</packageSources>
<packageSourceMapping>
<packageSource key="foundatio-feedz">
<package pattern="Foundatio.*" />
</packageSource>
</packageSourceMapping>
</configuration>
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request. See our documentation for development guidelines.
Development Setup:
- Clone the repository
- Open
Foundatio.RabbitMQ.slnxin Visual Studio or VS Code - Run
dotnet buildto build - Run
dotnet testto run tests
๐ License
Apache 2.0 License
Thanks to all the people who have contributed
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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
- Foundatio (>= 13.0.0)
- RabbitMQ.Client (>= 7.2.1)
-
net8.0
- Foundatio (>= 13.0.0)
- RabbitMQ.Client (>= 7.2.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Foundatio.RabbitMQ:
| Package | Downloads |
|---|---|
|
BKGlobal.Framework.FoundatioFx
BKGlobal.Framework |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Foundatio.RabbitMQ:
| Repository | Stars |
|---|---|
|
exceptionless/Exceptionless
Exceptionless application
|
| Version | Downloads | Last Updated |
|---|---|---|
| 13.0.0 | 0 | 4/25/2026 |
| 13.0.0-beta6 | 186 | 4/15/2026 |
| 13.0.0-beta3 | 190 | 2/14/2026 |
| 13.0.0-beta2 | 103 | 2/14/2026 |
| 13.0.0-beta1 | 313 | 1/12/2026 |
| 12.0.0 | 9,532 | 8/20/2025 |
| 11.1.0 | 5,460 | 5/9/2025 |
| 11.0.8 | 5,984 | 1/31/2025 |
| 11.0.6 | 5,640 | 11/26/2024 |
| 11.0.5 | 7,093 | 9/28/2024 |
| 11.0.4 | 4,939 | 9/27/2024 |
| 11.0.2 | 5,123 | 8/31/2024 |
| 11.0.0 | 4,939 | 8/31/2024 |
| 10.7.1 | 18,572 | 3/27/2024 |
| 10.7.0 | 10,804 | 1/5/2024 |
| 10.6.1 | 8,668 | 6/23/2023 |
| 10.6.0 | 16,068 | 1/1/2023 |
| 10.5.0 | 11,526 | 5/18/2022 |
| 10.4.0 | 8,178 | 3/8/2022 |
| 10.3.0 | 6,041 | 1/20/2022 |