A high performance implementation of Mediator pattern in .NET using source generators.
martinothamar/Mediator erreicht einen Gesundheitsindex von 54 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei AI Readiness (84/100) ab, am schwächsten bei Security (1/100). Zuletzt vor 117 Tagen aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.
Metriken werden auf einer standardisierten Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr gewichtetes Mittel, kalibriert auf die Verteilung des öffentlichen Registers, sodass die Stufen Perzentilbedeutung tragen; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze Gefährdet von 34.
Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.
Der gewichtete Gesamtwert 53 wird auf der veröffentlichten Indexskala auf 54 kalibriert (Register-Kalibrierung 2026-08-02).
Dieses Repository gehört einem persönlichen Konto. Ein Projekt mit nur einem Eigentümer trägt ein höheres Kontinuitätsrisiko als ein organisationsgetragenes.
Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?
| 9.9/36 | Push-Aktualität — letzter Push vor 117 Tagen |
| 6.9/36 | Commit-Rhythmus — 10/52 Wochen mit Commits |
| 14.1/18 | Commit-Volumen — 36 Commits im letzten Jahr |
| 0/10 | OpenSSF Scorecard: Maintained — keine Daten |
| commits_last_year | 36 |
| human_commit_share | — |
| days_since_last_push | 117 |
| active_weeks_last_year | 10 |
| 27/27 | Liefert Releases aus — 10 Releases veröffentlicht |
| 27/36 | Release-Aktualität — letztes Release vor 117 Tagen |
| 12.6/27 | Release-Rhythmus — ein Release etwa alle 166,8 Tage |
| 0/10 | OpenSSF Scorecard: Signed-Releases — keine Daten |
| releases_count | 10 |
| latest_release_tag | v3.1.0-rc.1 |
| releases_from_tags | nein |
| days_since_latest_release | 117 |
| mean_days_between_releases | 166,8 |
Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?
| 57.8/60 | Stars — 3.663 Stars |
| 18.8/25 | Forks — 182 Forks |
| 9.2/15 | Watcher — 47 Watcher |
| forks | 182 |
| stars | 3.663 |
| watchers | 47 |
| growth_state | unverified |
| growth_factor_pct | 100 |
| growth_unverified_reason | no_history |
| 22.5/22.5 | README |
| 22.5/22.5 | Lizenz — anerkannte Lizenz (MIT) |
| 18/18 | CONTRIBUTING-Leitfaden |
| 0/13.5 | Verhaltenskodex |
| 0/7.2 | Issue-Vorlage |
| 0/6.3 | PR-Vorlage |
| has_readme | ja |
| has_license | ja |
| readme_badges | — |
| has_contributing | ja |
| has_issue_template | nein |
| has_code_of_conduct | nein |
| readme_badge_services | — |
| has_pull_request_template | nein |
Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?
| 9/54 | Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab |
| 3.4/22.5 | Commit-Verteilung — wichtigste beitragende Person verfasste 85 % der Commits |
| 13.5/13.5 | Breite der Beitragenden — 17 Beitragende |
| 0/10 | OpenSSF Scorecard: Contributors — keine Daten |
| bus_factor | 1 |
| contributors_sampled | 17 |
| top_contributor_share | 0,848 |
| 31.2/42 | Issue-Lösungsquote — 74 % der Issues geschlossen |
| 27.7/30 | PR-Annahme — 122/132 entschiedene PRs gemergt |
| 0/13 | Newcomer PR acceptance — kein PR eines Erstbeitragenden in 30 Tagen entschieden |
| 0/15 | OpenSSF Scorecard: Code-Review — keine Daten |
| merged_prs | 122 |
| open_issues | 33 |
| closed_issues | 96 |
| prs_merged_7d | — |
| prs_decided_7d | — |
| prs_merged_30d | — |
| prs_decided_30d | — |
| issue_closed_ratio | 0,744 |
| closed_unmerged_prs | 10 |
| first_time_authors_30d | — |
| first_time_prs_merged_30d | — |
| first_time_prs_decided_30d | — |
| 10/30 | Organisatorische Trägerschaft — persönliches (Nutzer-)Konto |
| 0/20 | Verifizierte Domain — für Nutzerkonten nicht anwendbar |
| 17.6/25 | Reichweite des Inhabers — 278 Follower von martinothamar |
| 25/25 | Kontohistorie — 77 öffentliche Repos, Kontoalter ca. 12 Jahre |
| followers | 278 |
| owner_type | User |
| is_verified | — |
| owner_login | martinothamar |
| public_repos | 77 |
| account_age_days | 4.694 |
Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?
| 24/24 | CI-Workflows — 12 Workflow(s) |
| 24/24 | Tests vorhanden |
| 0/16 | Linter-Konfiguration |
| 0/9.6 | Pre-Commit-Hooks |
| 6.4/6.4 | .editorconfig |
| 0/20 | OpenSSF Scorecard: CI-Tests — keine Daten |
| has_ci | ja |
| has_tests | ja |
| has_editorconfig | ja |
| has_linter_config | nein |
| has_precommit_config | nein |
| 30/30 | README |
| 0/25 | Dokumentationsverzeichnis |
| 0/15 | Dokumentations-/Homepage-Site |
| 10/10 | Repository-Beschreibung |
| 10/10 | Topics — 12 Topics |
| 10/10 | Wiki |
| topics | csharp, dotnet, dotnetcore, dotnet-core, source-generation, source-gen, sourcegenerator, source-generators, dotnet-standard, csharp-sourcegenerator, mediator, mediator-pattern |
| has_wiki | ja |
| homepage | — |
| docs_site | — |
| has_readme | ja |
| has_docs_dir | nein |
| has_description | ja |
Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?
| 0/30 | Sicherheitsrichtlinie (SECURITY.md) |
| 0/25 | Dependabot-Konfiguration |
| 0/25 | Lockfiles für Abhängigkeiten — keine Abhängigkeits-Manifeste — nicht anwendbar |
| 0/20 | CodeQL-Workflow |
| source | file_signals |
| lockfiles | — |
| manifests | — |
| has_codeql_workflow | nein |
| has_security_policy | nein |
| has_dependabot_config | nein |
Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Trägt ein bewusst kleines Gewicht (4 %): Agenten-Tooling ist ein echtes Pflegesignal, doch ein Repository ohne jedes Signal kann weiterhin 100/100 erreichen.
| 45/45 | Agentenanweisungen — AGENTS.md |
| 0/15 | Maschinenlesbare Doku (llms.txt) |
| 0/40 | Lesbare Commit-Historie — keine Daten |
| has_llms_txt | nein |
| llms_txt_url | — |
| legible_history_share | — |
| agent_instruction_files | AGENTS.md |
| agent_instruction_max_bytes | 1.454 |
| 18/18 | Bootstrap mit einem Befehl — Justfile, benchmarks/Justfile |
| 22/22 | Automatisierte Tests |
| 0/11 | Lint-/Format-Konfiguration |
| 11/11 | Statische Typprüfung — C# (statisch typisiert) |
| 10/10 | Reproduzierbare Umgebung — Dockerfile |
| 0/10 | Belegte Agentenpraxis — keine Daten |
| 0/8 | Automatisierte Wartung — keine Daten |
| 0/10 | OpenSSF Scorecard: Pinned-Dependencies — keine Daten |
| has_nix | nein |
| has_tests | ja |
| lockfiles | — |
| has_dockerfile | ja |
| typed_language | ja |
| bootstrap_files | Justfile, benchmarks/Justfile |
| has_devcontainer | nein |
| has_linter_config | nein |
| typecheck_configs | — |
| agent_commit_share | — |
| toolchain_manifests | — |
| dependency_bot_commit_share | — |
| 45/45 | Typprüfbarer Code — C# (statisch typisiert) |
| 37.7/55 | Handhabbare Dateigrößen — 134/426 Quelldateien über 60 KB |
| primary_language | C# |
| largest_source_bytes | 384.884 |
| source_files_sampled | 426 |
| oversized_source_files | 134 |
| 0/40 | API-Schema (OpenAPI/GraphQL/proto) — für diese Art von Software nicht anwendbar |
| 0/20 | MCP-Server — für diese Art von Software nicht anwendbar |
| 40/40 | Lauffähige Beispiele — samples |
| example_dirs | samples |
| has_mcp_signal | nein |
| api_schema_files | — |
| interfaces_expected_of | — |
Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 0 direkte und 59 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.
| Registry | Paket | Version | Beziehung |
|---|---|---|---|
| NuGet | Autofac.Extensions.DependencyInjection | 10.0.0 | indirekt |
| NuGet | BenchmarkDotNet | — | indirekt |
| NuGet | BenchmarkDotNet.Diagnostics.dotTrace | — | indirekt |
| NuGet | BenchmarkDotNet.Diagnostics.Windows | — | indirekt |
| NuGet | Buildalyzer.Workspaces | — | indirekt |
| NuGet | coverlet.collector | — | indirekt |
| NuGet | FluentAssertions | — | indirekt |
| NuGet | FluentValidation | 12.1.0 | indirekt |
| NuGet | FluentValidation.AspNetCore | 11.3.1 | indirekt |
| NuGet | JetBrains.DotMemoryUnit | — | indirekt |
| NuGet | MassTransit | 8.5.5 | indirekt |
| NuGet | Mediator.Abstractions | — | indirekt |
| NuGet | Mediator.SourceGenerator | — | indirekt |
| NuGet | MediatR | — | indirekt |
| NuGet | Microsoft.AspNetCore.Components.WebAssembly | 10.0.0 | indirekt |
| NuGet | Microsoft.AspNetCore.Components.WebAssembly.Server | 10.0.0 | indirekt |
| NuGet | Microsoft.AspNetCore.OpenApi | 10.0.0 | indirekt |
| NuGet | Microsoft.Bcl.AsyncInterfaces | — | indirekt |
| NuGet | Microsoft.Build | — | indirekt |
| NuGet | Microsoft.Build.Locator | — | indirekt |
| NuGet | Microsoft.Build.Tasks.Core | — | indirekt |
| NuGet | Microsoft.Build.Utilities.Core | — | indirekt |
| NuGet | Microsoft.CodeAnalysis.Analyzers | — | indirekt |
| NuGet | Microsoft.CodeAnalysis.Common | — | indirekt |
| NuGet | Microsoft.CodeAnalysis.CSharp | — | indirekt |
| NuGet | Microsoft.CodeAnalysis.CSharp.Workspaces | — | indirekt |
| NuGet | Microsoft.CodeAnalysis.VisualBasic | — | indirekt |
| NuGet | Microsoft.CodeAnalysis.VisualBasic.Workspaces | — | indirekt |
| NuGet | Microsoft.CodeAnalysis.Workspaces.Common | — | indirekt |
| NuGet | Microsoft.CodeAnalysis.Workspaces.MSBuild | — | indirekt |
| NuGet | Microsoft.CSharp | — | indirekt |
| NuGet | Microsoft.Extensions.DependencyInjection | — | indirekt |
| NuGet | Microsoft.Extensions.DependencyInjection | 10.0.0 | indirekt |
| NuGet | Microsoft.Extensions.DependencyInjection.Abstractions | — | indirekt |
| NuGet | Microsoft.Extensions.Hosting | — | indirekt |
| NuGet | Microsoft.Extensions.Logging | — | indirekt |
| NuGet | Microsoft.Extensions.Logging.Abstractions | 10.0.0 | indirekt |
| NuGet | Microsoft.NET.Test.Sdk | — | indirekt |
| NuGet | NuGet.ProjectModel | — | indirekt |
| NuGet | OneOf | 3.0.271 | indirekt |
| NuGet | OpenTelemetry.Exporter.OpenTelemetryProtocol | 1.15.0 | indirekt |
| NuGet | OpenTelemetry.Extensions.Hosting | 1.15.0 | indirekt |
| NuGet | OpenTelemetry.Instrumentation.AspNetCore | 1.15.0 | indirekt |
| NuGet | PolySharp | — | indirekt |
| NuGet | Riok.Mapperly | 4.3.0 | indirekt |
| NuGet | Scriban | — | indirekt |
| NuGet | Swashbuckle.AspNetCore.SwaggerUI | 10.0.0 | indirekt |
| NuGet | System.Collections.Immutable | — | indirekt |
| NuGet | System.Configuration.ConfigurationManager | — | indirekt |
| NuGet | System.Linq.Async | — | indirekt |
| NuGet | System.Runtime.CompilerServices.Unsafe | — | indirekt |
| NuGet | System.Threading.Tasks.Extensions | — | indirekt |
| NuGet | Verify.DiffPlex | — | indirekt |
| NuGet | Verify.SourceGenerators | — | indirekt |
| NuGet | Verify.XunitV3 | — | indirekt |
| NuGet | Xunit.Combinatorial | — | indirekt |
| NuGet | xunit.runner.visualstudio | — | indirekt |
| NuGet | xunit.v3 | — | indirekt |
| NuGet | xunit.v3.assert | — | indirekt |
Stimmt etwas in diesem Bericht nicht, oder gibt es Gedanken dazu? Falsche Messungen, übersehene Tools, Ideen, Fragen — alles ist willkommen. Jede Nachricht wird gelesen und beantwortet.
Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.
Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v2.10.0, Schema v0.14.0 — vollständige Methodik · Metriken-Wiki.
Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistiken.