BlazorBus 1.0.0
dotnet add package BlazorBus --version 1.0.0
NuGet\Install-Package BlazorBus -Version 1.0.0
<PackageReference Include="BlazorBus" Version="1.0.0" />
<PackageVersion Include="BlazorBus" Version="1.0.0" />
<PackageReference Include="BlazorBus" />
paket add BlazorBus --version 1.0.0
#r "nuget: BlazorBus, 1.0.0"
#:package BlazorBus@1.0.0
#addin nuget:?package=BlazorBus&version=1.0.0
#tool nuget:?package=BlazorBus&version=1.0.0
BlazorBus
Lightweight publish/subscribe message bus for Blazor components.
The Problem
In Blazor, components that are not in a parent-child relationship have no built-in way to communicate. The common workarounds — prop drilling, cascading parameters, or shared state services — add coupling and boilerplate that grows with your app.
BlazorBus solves this with a simple pub/sub bus: components that don't know each other can still send and receive strongly-typed messages.
Installation
dotnet add package BlazorBus
Setup
Register BlazorBus in Program.cs:
using BlazorBus.Extensions;
builder.Services.AddBlazorBus();
Usage
Define your message (anywhere in the project):
public record ProductoAgotado(int ProductoId, string Nombre);
Publisher component — sends the message, knows nothing about subscribers:
@inject IBlazorBus Bus
<button @onclick="Notify">Mark as out of stock</button>
@code {
void Notify() => Bus.Send(new ProductoAgotado(1, "Laptop"));
}
Subscriber component — reacts to the message, knows nothing about the publisher:
@inject IBlazorBus Bus
@implements IDisposable
<p>@_message</p>
@code {
string _message = "";
protected override void OnInitialized()
{
Bus.Subscribe<ProductoAgotado>(OnProductoAgotado);
}
void OnProductoAgotado(ProductoAgotado e)
{
_message = $"Out of stock: {e.Nombre}";
StateHasChanged();
}
public void Dispose()
{
Bus.Unsubscribe<ProductoAgotado>(OnProductoAgotado);
}
}
Always call
UnsubscribeinDisposeto avoid memory leaks.
Why BlazorBus?
| Feature | BlazorBus |
|---|---|
| Zero external dependencies | Yes |
| Type-safe (types, not strings) | Yes |
| Works with any architecture | Yes |
| Minimal API | 3 methods: Subscribe, Unsubscribe, Send |
| Singleton — one bus for the whole app | Yes |
License
MIT
| 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 was computed. 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. |
-
net8.0
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 |
|---|---|---|
| 1.0.0 | 83 | 3/24/2026 |