Mediarq.Core
1.5.1
dotnet add package Mediarq.Core --version 1.5.1
NuGet\Install-Package Mediarq.Core -Version 1.5.1
<PackageReference Include="Mediarq.Core" Version="1.5.1" />
<PackageVersion Include="Mediarq.Core" Version="1.5.1" />
<PackageReference Include="Mediarq.Core" />
paket add Mediarq.Core --version 1.5.1
#r "nuget: Mediarq.Core, 1.5.1"
#:package Mediarq.Core@1.5.1
#addin nuget:?package=Mediarq.Core&version=1.5.1
#tool nuget:?package=Mediarq.Core&version=1.5.1
Mediarq.Core
The core of Mediarq — a lightweight, dependency-free CQRS mediator for .NET: commands, queries,
no-result commands, notifications, streaming, a composable pipeline of behaviors, built-in validation
and Result types. Includes the optional source generator for reflection-free, Native-AOT-friendly
dispatch.
dotnet add package Mediarq.Core
Want the core plus the lightweight extensions in one install? Use the
Mediarqmeta-package.
Quick start
using Mediarq.Extensions;
builder.Services.AddLogging();
builder.Services.AddMediarq(isHttp: false, typeof(CreateOrder).Assembly); // scan for handlers
public record CreateOrder(string Customer) : ICommand<Result<Guid>>;
public class CreateOrderHandler : ICommandHandler<CreateOrder, Result<Guid>>
{
public Task<Result<Guid>> Handle(CreateOrder request, CancellationToken ct = default)
=> Task.FromResult(Result.Success(Guid.NewGuid()));
}
// inject IMediator / ISender / IPublisher
Result<Guid> result = await sender.Send(new CreateOrder("Alice"));
- Commands / queries return a
Result/Result<T>(railway-oriented); void commands implementICommand. - Notifications (
INotification) fan out to zero or more handlers. - Streaming (
IStreamRequest<T>) returnsIAsyncEnumerable<T>viaCreateStream. - Pipeline behaviors wrap the handler; built-in validation/exception/pre/post light up automatically.
Reflection-free / Native AOT
builder.Services.AddMediarqCore(isHttp: false).AddMediarqHandlers(); // generated at compile time
No assembly scan, no reflection on dispatch. The library is IsAotCompatible and publishes cleanly with
Native AOT.
Learn more
MIT © Nicolas Rouffart
| 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 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. |
-
net10.0
- Microsoft.AspNetCore.Http.Abstractions (>= 2.3.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.2)
- Scrutor (>= 6.1.0)
-
net8.0
- Microsoft.AspNetCore.Http.Abstractions (>= 2.3.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.2)
- Scrutor (>= 6.1.0)
-
net9.0
- Microsoft.AspNetCore.Http.Abstractions (>= 2.3.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.2)
- Scrutor (>= 6.1.0)
NuGet packages (23)
Showing the top 5 NuGet packages that depend on Mediarq.Core:
| Package | Downloads |
|---|---|
|
Mediarq
Lean meta-package bundling Mediarq.Core and the lightweight extensions: ASP.NET Core, FluentValidation, DataAnnotations, Caching, Diagnostics and UnitOfWork. Heavy or opinionated integrations (EntityFrameworkCore, OpenTelemetry, MassTransit, Polly) ship as separate packages — install them explicitly when you need them. |
|
|
Mediarq.UnitOfWork
Unit of Work pipeline behavior for Mediarq: commit a unit of work around transactional commands. |
|
|
Mediarq.Diagnostics
Observability for Mediarq: an OpenTelemetry-compatible Activity (tracing) and System.Diagnostics.Metrics behavior per request. |
|
|
Mediarq.Caching
Caching pipeline behaviors for Mediarq: memoize responses of ICacheableRequest via IMemoryCache (in-memory) or IDistributedCache (e.g. Redis). |
|
|
Mediarq.FluentValidation
FluentValidation adapter for Mediarq: run FluentValidation validators inside the Mediarq validation pipeline. |
GitHub repositories
This package is not used by any popular GitHub repositories.
See the changelog: https://github.com/rouffou/mediarq/blob/main/CHANGELOG.md