PulseBus 1.0.4
See the version list below for details.
dotnet add package PulseBus --version 1.0.4
NuGet\Install-Package PulseBus -Version 1.0.4
<PackageReference Include="PulseBus" Version="1.0.4" />
<PackageVersion Include="PulseBus" Version="1.0.4" />
<PackageReference Include="PulseBus" />
paket add PulseBus --version 1.0.4
#r "nuget: PulseBus, 1.0.4"
#:package PulseBus@1.0.4
#addin nuget:?package=PulseBus&version=1.0.4
#tool nuget:?package=PulseBus&version=1.0.4
🚌 PulseBus
Fast. Minimal. Universal.
PulseBus is a lightweight, provider-agnostic messaging abstraction for .NET, designed to unify message publishing and consuming across multiple providers with a focus on Clean Architecture and High Performance.
📑 Table of Contents
🚀 Features
- Unified API: Single interface to interact with RabbitMQ, SQS, Kafka, etc.
- Middleware Pipeline: Extensible pipeline similar to ASP.NET Core.
- Flexible Serialization: Support for JSON, Protobuf, MessagePack, and custom serializers.
- Resilience: Built-in retry policies and idempotency support.
- Lightweight: Zero external dependencies in the core (
PulseBuspackage). - Extensible: Easily add new providers through a plugin-based design.
📦 Installation
Install the base package via NuGet:
dotnet add package PulseBus
Then, add the provider you need:
| Provider | NuGet Package |
|---|---|
| RabbitMQ | dotnet add package PulseBus.RabbitMQ |
| AWS SQS | dotnet add package PulseBus.SQS |
| Azure Queue | dotnet add package PulseBus.AzureQueue |
| Kafka | dotnet add package PulseBus.Kafka |
🧩 Quick Start
Register PulseBus in your dependency injection container (Program.cs or Startup.cs):
using PulseBus.Extensions;
services.AddPulseBus(builder =>
{
// Configure your provider
builder.UseRabbitMq(options =>
{
options.Host = "localhost";
options.Username = "guest";
options.Password = "guest";
});
// Select your preferred serializer
builder.UseJsonSerializer();
});
💻 Usage
Publishing
Send messages asynchronously to any configured bus:
await bus.PublishAsync("user.requested", new UserRequested
{
Email = "andres@example.com",
Name = "Andrés"
});
Subscribing
Define message handlers easily:
bus.Subscribe<UserRequested>("user.requested", async (msg, ctx) =>
{
Console.WriteLine($"Processing: {msg.Email}");
// Acknowledge the message
await ctx.AcknowledgeAsync();
});
🧱 Architecture
PulseBus is built on solid interfaces that allow you to decouple your business logic from the messaging infrastructure:
IMessageBus: Main entry point.IMessageProducer/IMessageConsumer: Transport abstractions.IMessageMiddleware: For logging, validation, or telemetry.IIdempotencyStore: Integrated duplicate control.
💖 Support
This project is developed and maintained by Andrés Mariño. If you find this library useful, consider supporting its continued development:
📝 License
This project is licensed under the MIT License. See the LICENSE file for details.
Made with ❤️ for the .NET community
| 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 is compatible. 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
- Microsoft.Extensions.DependencyInjection (>= 10.0.8)
-
net8.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.8)
-
net9.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.8)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on PulseBus:
| Package | Downloads |
|---|---|
|
PulseBus.RabbitMQ
RabbitMQ provider for PulseBus, the minimalistic and extensible messaging abstraction for .NET. |
|
|
PulseBus.Extensions
Extensions pack for PulseBus: JSON serialization, retry policies, logging middleware, idempotency store and more. |
GitHub repositories
This package is not used by any popular GitHub repositories.