Lukdrasil.SimpleBus
0.1.6
dotnet add package Lukdrasil.SimpleBus --version 0.1.6
NuGet\Install-Package Lukdrasil.SimpleBus -Version 0.1.6
<PackageReference Include="Lukdrasil.SimpleBus" Version="0.1.6" />
<PackageVersion Include="Lukdrasil.SimpleBus" Version="0.1.6" />
<PackageReference Include="Lukdrasil.SimpleBus" />
paket add Lukdrasil.SimpleBus --version 0.1.6
#r "nuget: Lukdrasil.SimpleBus, 0.1.6"
#:package Lukdrasil.SimpleBus@0.1.6
#addin nuget:?package=Lukdrasil.SimpleBus&version=0.1.6
#tool nuget:?package=Lukdrasil.SimpleBus&version=0.1.6
SimpleBus
A simple, type-safe, and asynchronous message bus for .NET 9+.
Project Description
SimpleBus is a library for publishing and subscribing to messages (events) within .NET applications. It leverages .NET Channels for efficient and safe communication between components. The library is designed with simplicity, extensibility, and Dependency Injection support in mind.
Key Features
- Type-safe API for publish/subscribe
- Asynchronous message processing
- Easy integration with .NET Dependency Injection
- Ability to mask sensitive data in messages
- Support for custom handlers and middleware (planned)
Basic Usage
- Define a message type: public record MyMessage(string Content);
- Register SimpleBus in the DI container: services.AddSingleton<ISimpleBus, SimpleBus>(); services.AddSingleton<IEventSender>(sp ⇒ sp.GetRequiredService<ISimpleBus>()); services.AddSingleton<IEventListener>(sp ⇒ sp.GetRequiredService<ISimpleBus>());
- Publish and subscribe to messages: var bus = serviceProvider.GetRequiredService<ISimpleBus>(); bus.Publish(new MyMessage("Hello world!"));
bus.Subscribe<MyMessage>(msg ⇒ { Console.WriteLine($"Received: {msg.Content}"); });
Requirements
- .NET 9.0 or later
Contributing
Contributions are welcome! Please open an issue or pull request as needed.
License
This project is open source under the MIT license.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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 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. |
-
net9.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.6)
- Microsoft.Extensions.Hosting.Abstractions (>= 9.0.6)
- Scrutor (>= 6.1.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 |
|---|