{"adoption": {"forks": 181, "observed_at": "2026-08-28T04:08:14.905327+00:00", "stars": 3697}, "canonical_url": "https://ross.abutalabs.com/products/mediator", "card": {"archived": false, "artifact_type": "library", "description": "A high performance implementation of Mediator pattern in .NET using source generators.", "domain": ["developer-tools", "backend", "web-development"], "enriched": true, "function": ["middleware", "developer-tools", "plugin-system"], "health_score": 82, "homepage": null, "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["martinothamar/Mediator"], "name": "martinothamar/Mediator", "platform": ["dotnet", "cross-platform"], "pushed_at": "2026-03-22T23:44:12+00:00", "repo": "martinothamar/Mediator", "stars": 3697, "tags": ["mediator-pattern", "source-generator", "mediatr-alternative", "native-aot", "dependency-injection", "cqrs", "in-process-messaging"], "topics": ["csharp", "dotnet", "dotnetcore", "dotnet-core", "source-generation", "source-gen", "sourcegenerator", "source-generators", "dotnet-standard", "csharp-sourcegenerator", "mediator", "mediator-pattern"], "urls": [], "use_cases": ["decouple request handlers from controllers in ASP.NET Core apps", "replace MediatR for better performance and Native AOT support", "implement CQRS-style commands and queries in .NET", "avoid fat constructors with many injected services", "catch missing handler configuration at build time instead of runtime", "reduce cold start time in serverless and edge deployments"], "what_it_is": "A high-performance .NET implementation of the Mediator pattern built with C# source generators, offering a MediatR-like API. It generates DI registration and monomorphized dispatch code at build time, enabling full Native AOT support without reflection.", "when_to_avoid": ["you need MediatR's extensive ecosystem of pipeline behaviors and integrations", "your project does not use .NET or C#", "you rely on runtime-registered or dynamically discovered handlers", "you need notification/multicast publishing features beyond basic request/response"], "when_to_choose": ["you use the Mediator pattern in .NET and want maximum performance", "you need Native AOT compatibility without reflection", "you want compile-time diagnostics for missing handlers", "you want a stable, semver-strict MediatR alternative"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mediator", "repo": "martinothamar/Mediator", "role": "main", "score": 68}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:14.905327+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:31:04.097485+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4e4a29ea0ba3a959c3a62c7e7c6f7a21fb07da0a6c2ca99fbb84d524435e7a", "fetched_at": "2026-08-28T04:08:14.905327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/martinothamar/Mediator"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:14.905327+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:31:04.097485+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4e4a29ea0ba3a959c3a62c7e7c6f7a21fb07da0a6c2ca99fbb84d524435e7a", "fetched_at": "2026-08-28T04:08:14.905327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/martinothamar/Mediator"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:31:04.097485+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4e4a29ea0ba3a959c3a62c7e7c6f7a21fb07da0a6c2ca99fbb84d524435e7a", "fetched_at": "2026-08-28T04:08:14.905327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/martinothamar/Mediator"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:14.905327+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:14.905327+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:14.905327+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:31:04.097485+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4e4a29ea0ba3a959c3a62c7e7c6f7a21fb07da0a6c2ca99fbb84d524435e7a", "fetched_at": "2026-08-28T04:08:14.905327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/martinothamar/Mediator"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:14.905327+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:14.905327+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:31:04.097485+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4e4a29ea0ba3a959c3a62c7e7c6f7a21fb07da0a6c2ca99fbb84d524435e7a", "fetched_at": "2026-08-28T04:08:14.905327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/martinothamar/Mediator"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:14.905327+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:14.905327+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:14.905327+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:31:04.097485+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4e4a29ea0ba3a959c3a62c7e7c6f7a21fb07da0a6c2ca99fbb84d524435e7a", "fetched_at": "2026-08-28T04:08:14.905327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/martinothamar/Mediator"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:14.905327+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:14.905327+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:31:04.097485+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4e4a29ea0ba3a959c3a62c7e7c6f7a21fb07da0a6c2ca99fbb84d524435e7a", "fetched_at": "2026-08-28T04:08:14.905327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/martinothamar/Mediator"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:31:04.097485+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4e4a29ea0ba3a959c3a62c7e7c6f7a21fb07da0a6c2ca99fbb84d524435e7a", "fetched_at": "2026-08-28T04:08:14.905327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/martinothamar/Mediator"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:31:04.097485+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4e4a29ea0ba3a959c3a62c7e7c6f7a21fb07da0a6c2ca99fbb84d524435e7a", "fetched_at": "2026-08-28T04:08:14.905327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/martinothamar/Mediator"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:31:04.097485+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4e4a29ea0ba3a959c3a62c7e7c6f7a21fb07da0a6c2ca99fbb84d524435e7a", "fetched_at": "2026-08-28T04:08:14.905327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/martinothamar/Mediator"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 73, "longevity": 100, "rhythm": 43}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1981, "days_push": 164, "days_rel": 164, "gap_med": 229, "n_releases_24m": 2}, "score": 68, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}