luckypennysoftware/mediatr

Simple, unambitious mediator implementation in .NET

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 43 minutes ago
Added to GitGenius on September 5th, 2026
Created on March 3rd, 2014
Open Issues & Pull Requests: 0 (+0)
GitHub issues: Enabled
Number of forks: 2,182
Total Stargazers: 11,858 (+0)
Total Subscribers: 293 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 47.2 hours
Mean response time: 17.0 days
90th percentile: 34.4 days
Tracked items: 65

Most active contributors

Sign in to see contributor activity.

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 15% of issues opened in the past year have been closed. Three people close 72% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 2
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 2
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Stale (24)
  • Improvement (1)

Detailed Description

MediatR is a mediator implementation for .NET that enables in-process messaging with no external dependencies.

The tool solves the problem of decoupling request handlers from their callers by implementing the mediator pattern. It supports request/response, commands, queries, notifications, and events, with both synchronous and asynchronous execution. Dispatching uses C# generic variance to route messages intelligently to their handlers without requiring explicit type registration for each handler variant.

Developers should choose MediatR when building applications that benefit from loose coupling between components, particularly in layered architectures or domain-driven designs. It suits projects where you want to centralize cross-cutting concerns like logging, validation, or exception handling through pipeline behaviors. The tool is especially useful when contracts need to live in separate assemblies from handlers, which is common in API, gRPC, or Blazor projects; a contracts-only package is available for this scenario. The project integrates directly with Microsoft.Extensions.DependencyInjection for straightforward registration in modern .NET applications.

The project maintains active continuous integration with automated testing. Development follows a structured release process with both stable and pre-release versions published to package repositories. The maintainers provide comprehensive documentation through wiki examples and support multiple registration patterns to accommodate different architectural needs. The codebase includes thoughtful features like environment variable-based license key discovery for containerized deployments and logging configuration to suppress license warnings in client applications.