LevadS 0.5.0-beta
Prefix Reserveddotnet add package LevadS --version 0.5.0-beta
NuGet\Install-Package LevadS -Version 0.5.0-beta
<PackageReference Include="LevadS" Version="0.5.0-beta" />
<PackageVersion Include="LevadS" Version="0.5.0-beta" />
<PackageReference Include="LevadS" />
paket add LevadS --version 0.5.0-beta
#r "nuget: LevadS, 0.5.0-beta"
#:package LevadS@0.5.0-beta
#addin nuget:?package=LevadS&version=0.5.0-beta&prerelease
#tool nuget:?package=LevadS&version=0.5.0-beta&prerelease
LevadS: mediator on steroi... topics.
Decouple your logic. Fine-tune your flows.
What is LevadS?
LevadS (pronounced "levadas") is a lightweight mediator library for .NET, designed to facilitate message-based, topic-driven communication within applications. It enables developers to implement the Mediator pattern, promoting loose coupling and separation of concerns by allowing different parts of an application to communicate through messages without direct dependencies.
Topics, concept known from multiple message brokers, are first-class citizens in LevadS. They enable more granular control over message routing and handling. However, they are completely optional and can be used at the developer's discretion.
LevadS comes with minimal dependencies, is designed for easy integration and follows modern patterns (notably Minimal APIs' way of registration).
Supports .NET 8.0+.
Openness as a principle
Everything can be a message / request
Use delegates or classes - it's up to you
Use topics or not - it's up to you
Register manually or automatically - it's up to you
Use Dependency Injection everywhere
Versatility as a goal
Each message is sent with topic and set of headers
Each handler and filter can specify topic pattern to match
Handlers and filters can be generic and support message variance
Filters can be scoped to specific handlers
Autodiscovery of handlers / filters is possible via attributes
Handlers can be registered and disposed at runtime
Four ways to dispatch a message
Send a message to be handled once
Publish a message to be handled by many
Request using message that expects a response
Stream using message that expects a stream of responses
Filtering pipeline
Two stages of processing = two types of filters:
Dispatch filters are to gather context and set up routing
Handling filters are making a separated pipeline to each invoked handler
Filters are useful for routing, logging, validation, caching, transactions, etc.
Exception handlers provide centralized error handling and recovery
| 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
- LevadS.Abstractions (>= 0.5.0-beta)
- Microsoft.Bcl.AsyncInterfaces (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection (>= 8.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.1)
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 |
|---|---|---|
| 0.5.0-beta | 139 | 11/4/2025 |