Umlamuli 1.0.0
dotnet add package Umlamuli --version 1.0.0
NuGet\Install-Package Umlamuli -Version 1.0.0
<PackageReference Include="Umlamuli" Version="1.0.0" />
<PackageVersion Include="Umlamuli" Version="1.0.0" />
<PackageReference Include="Umlamuli" />
paket add Umlamuli --version 1.0.0
#r "nuget: Umlamuli, 1.0.0"
#:package Umlamuli@1.0.0
#addin nuget:?package=Umlamuli&version=1.0.0
#tool nuget:?package=Umlamuli&version=1.0.0
Umlamuli
About Umlamuli
Umlamuli is an open-source continuation of the MediatR library. MediatR has changed it licence to a commercial one starting with version 13. I have complete respect for Jimmy Bogard and the work he has done on MediatR, but I want to keep using an open-source mediator library. I also feel that the Mediator pattern is a useful one to have available in .NET projects, but as it is fairly simple to implement, I have decided to create this fork and maintain it going forward.
Umlamuli [umlaˈmuːli] is a Zulu word, means "mediator" or "arbiter". I'm not a native Zulu speaker, so if I've made any mistakes with the name, please let me know!
This should be a drop-in replacement for MediatR v12.5.0. The namespaces and package names have been changed from MediatR to Umlamuli.
Umlamuli
Simple, unambitious mediator implementation in .NET.
In-process messaging with no dependencies.
This repository has been renamed from Umlamuli to Umlamuli. All namespaces, assemblies, and project names now use Umlamuli.
Supports request/response, commands, queries, notifications and events, synchronous and async with intelligent dispatching via C# generic variance.
Examples in the wiki.
Installing Umlamuli
You should install Umlamuli with NuGet:
Install-Package Umlamuli
Or via the .NET Core command line interface:
dotnet add package Umlamuli
Either commands, from Package Manager Console or .NET Core CLI, will download and install Umlamuli and all required dependencies.
Using Contracts-Only Package
To reference only the contracts for Umlamuli, which includes:
IRequest(including generic variants)INotificationIStreamRequest
Add a package reference to Umlamuli.Contracts
This package is useful in scenarios where your Umlamuli contracts are in a separate assembly/project from handlers. Example scenarios include:
- API contracts
- GRPC contracts
- Blazor
Registering with IServiceCollection
Umlamuli supports Microsoft.Extensions.DependencyInjection.Abstractions directly. To register various Umlamuli services and handlers:
services.AddUmlamuli(cfg => cfg.RegisterServicesFromAssemblyContaining<Startup>());
or with an assembly:
services.AddUmlamuli(cfg => cfg.RegisterServicesFromAssembly(typeof(Startup).Assembly));
This registers:
IMediatoras transientISenderas transientIPublisheras transientIRequestHandler<,>concrete implementations as transientIRequestHandler<>concrete implementations as transientINotificationHandler<>concrete implementations as transientIStreamRequestHandler<>concrete implementations as transientIRequestExceptionHandler<,,>concrete implementations as transientIRequestExceptionAction<,>)concrete implementations as transient
This also registers open generic implementations for:
INotificationHandler<>IRequestExceptionHandler<,,>IRequestExceptionAction<,>
To register behaviors, stream behaviors, pre/post processors:
services.AddUmlamuli(cfg => {
cfg.RegisterServicesFromAssembly(typeof(Startup).Assembly);
cfg.AddBehavior<PingPongBehavior>();
cfg.AddStreamBehavior<PingPongStreamBehavior>();
cfg.AddRequestPreProcessor<PingPreProcessor>();
cfg.AddRequestPostProcessor<PingPongPostProcessor>();
cfg.AddOpenBehavior(typeof(GenericBehavior<,>));
});
With additional methods for open generics and overloads for explicit service types.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Umlamuli.Contracts (>= 1.0.0)
-
.NETStandard 2.1
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Umlamuli.Contracts (>= 1.0.0)
-
net10.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Umlamuli.Contracts (>= 1.0.0)
-
net8.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Umlamuli.Contracts (>= 1.0.0)
-
net9.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Umlamuli.Contracts (>= 1.0.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 | 259 | 11/30/2025 |