TurboMediator.Abstractions
0.9.3
dotnet add package TurboMediator.Abstractions --version 0.9.3
NuGet\Install-Package TurboMediator.Abstractions -Version 0.9.3
<PackageReference Include="TurboMediator.Abstractions" Version="0.9.3" />
<PackageVersion Include="TurboMediator.Abstractions" Version="0.9.3" />
<PackageReference Include="TurboMediator.Abstractions" />
paket add TurboMediator.Abstractions --version 0.9.3
#r "nuget: TurboMediator.Abstractions, 0.9.3"
#:package TurboMediator.Abstractions@0.9.3
#addin nuget:?package=TurboMediator.Abstractions&version=0.9.3
#tool nuget:?package=TurboMediator.Abstractions&version=0.9.3
TurboMediator
A high-performance Mediator library for .NET using Roslyn Source Generators. Zero reflection, Native AOT compatible, compile-time validated.
Key Features
- ⚡ Source-generated dispatch — No reflection, no dictionaries. A
switchexpression routes messages at compile time. - 🔒 Compile-time safety — Missing handlers and duplicate registrations are build errors, not runtime exceptions.
- 🌐 Native AOT ready — No dynamic code generation, fully compatible with
PublishAot. - 🧩 20+ optional packages — Resilience, observability, persistence, sagas, scheduling, feature flags, testing helpers, and more.
- 📜 MIT license — Free forever. No revenue thresholds, no team size limits.
Quick Start
dotnet add package TurboMediator
// Define a query
public record GetUserQuery(Guid Id) : IQuery<User>;
// Implement a handler
public class GetUserHandler : IQueryHandler<GetUserQuery, User>
{
public async ValueTask<User> Handle(GetUserQuery query, CancellationToken ct)
=> await _repo.GetByIdAsync(query.Id, ct);
}
// Register & use
builder.Services.AddTurboMediator();
var user = await mediator.Send(new GetUserQuery(userId));
Links
- 📖 Documentation
- 🐙 GitHub
- 📦 All packages
| 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
- Microsoft.Extensions.Options (>= 8.0.0)
NuGet packages (16)
Showing the top 5 NuGet packages that depend on TurboMediator.Abstractions:
| Package | Downloads |
|---|---|
|
TurboMediator.FeatureFlags
Feature flag behavior for TurboMediator - conditionally enable/disable handlers |
|
|
TurboMediator.Persistence
Persistence abstractions for TurboMediator - Transaction, Outbox, and Audit behaviors with provider-agnostic interfaces |
|
|
TurboMediator.Scheduling
Cron jobs and recurring job scheduling for TurboMediator - zero reflection, source-generator friendly |
|
|
TurboMediator.Caching
Response caching for TurboMediator - attribute-based caching with pluggable providers |
|
|
TurboMediator.DistributedLocking
Distributed locking for TurboMediator - attribute-based mutual exclusion with pluggable providers |
GitHub repositories
This package is not used by any popular GitHub repositories.