{"adoption": {"forks": 933, "observed_at": "2026-08-28T04:10:36.172325+00:00", "stars": 9603}, "canonical_url": "https://ross.abutalabs.com/products/yarp", "card": {"archived": false, "artifact_type": "library", "description": "A toolkit for developing high-performance HTTP reverse proxy applications.", "domain": ["web-development", "backend", "networking", "apis", "microservices"], "enriched": true, "function": ["http-server", "proxy", "routing", "middleware", "load-testing"], "health_score": 91, "homepage": "https://yarp.dot.net", "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["dotnet/yarp"], "name": "dotnet/yarp", "platform": ["dotnet", "cross-platform", "windows"], "pushed_at": "2026-08-24T05:07:04+00:00", "repo": "dotnet/yarp", "stars": 9603, "tags": ["reverse-proxy", "aspnet-core", "load-balancing", "http2", "http3", "grpc", "websockets", "gateway", "docker", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["build a reverse proxy in .NET", "route traffic to backend services with load balancing", "create an API gateway with custom routing rules", "proxy gRPC and WebSocket traffic", "customize proxy behavior programmatically", "front microservices with a configurable gateway"], "what_it_is": "YARP (Yet Another Reverse Proxy) is a .NET library and toolkit for building high-performance, customizable HTTP reverse proxy servers on ASP.NET. It supports config-file or programmatic configuration, load balancing, health checks, and protocols like HTTP/2, HTTP/3, gRPC, and WebSockets.", "when_to_avoid": ["you just need a simple static reverse proxy without custom code (nginx or Caddy may suffice)", "your stack is not .NET and you don't need programmatic customization", "you need a full-featured edge proxy with extensive plugin ecosystems out of the box"], "when_to_choose": ["you need a reverse proxy deeply customized in .NET code", "you want an API gateway integrated with ASP.NET middleware", "you need high-performance proxying with HTTP/2, HTTP/3, gRPC, or WebSockets support", "you want configuration driven by your own backend config system"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/yarp", "repo": "dotnet/yarp", "role": "main", "score": 70}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.172325+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:21:53.591483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6808e025cf9cd42a209c7cfac47bd4407e28a75a0926a18602e09d78a9149fa8", "fetched_at": "2026-08-28T04:10:36.172325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet/yarp"}, {"content_hash": "3ce2f8d58831b192f8d78aed81243cf39bffc1c30e2550e9c1d6dc293860954f", "fetched_at": "2026-08-29T08:21:22.112329+00:00", "kind": "homepage", "missing": false, "url": "https://yarp.dot.net"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.172325+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:21:53.591483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6808e025cf9cd42a209c7cfac47bd4407e28a75a0926a18602e09d78a9149fa8", "fetched_at": "2026-08-28T04:10:36.172325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet/yarp"}, {"content_hash": "3ce2f8d58831b192f8d78aed81243cf39bffc1c30e2550e9c1d6dc293860954f", "fetched_at": "2026-08-29T08:21:22.112329+00:00", "kind": "homepage", "missing": false, "url": "https://yarp.dot.net"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:21:53.591483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6808e025cf9cd42a209c7cfac47bd4407e28a75a0926a18602e09d78a9149fa8", "fetched_at": "2026-08-28T04:10:36.172325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet/yarp"}, {"content_hash": "3ce2f8d58831b192f8d78aed81243cf39bffc1c30e2550e9c1d6dc293860954f", "fetched_at": "2026-08-29T08:21:22.112329+00:00", "kind": "homepage", "missing": false, "url": "https://yarp.dot.net"}], "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:10:36.172325+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.172325+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.172325+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:21:53.591483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6808e025cf9cd42a209c7cfac47bd4407e28a75a0926a18602e09d78a9149fa8", "fetched_at": "2026-08-28T04:10:36.172325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet/yarp"}, {"content_hash": "3ce2f8d58831b192f8d78aed81243cf39bffc1c30e2550e9c1d6dc293860954f", "fetched_at": "2026-08-29T08:21:22.112329+00:00", "kind": "homepage", "missing": false, "url": "https://yarp.dot.net"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.172325+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.172325+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:21:53.591483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6808e025cf9cd42a209c7cfac47bd4407e28a75a0926a18602e09d78a9149fa8", "fetched_at": "2026-08-28T04:10:36.172325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet/yarp"}, {"content_hash": "3ce2f8d58831b192f8d78aed81243cf39bffc1c30e2550e9c1d6dc293860954f", "fetched_at": "2026-08-29T08:21:22.112329+00:00", "kind": "homepage", "missing": false, "url": "https://yarp.dot.net"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.172325+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.172325+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.172325+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:21:53.591483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6808e025cf9cd42a209c7cfac47bd4407e28a75a0926a18602e09d78a9149fa8", "fetched_at": "2026-08-28T04:10:36.172325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet/yarp"}, {"content_hash": "3ce2f8d58831b192f8d78aed81243cf39bffc1c30e2550e9c1d6dc293860954f", "fetched_at": "2026-08-29T08:21:22.112329+00:00", "kind": "homepage", "missing": false, "url": "https://yarp.dot.net"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.172325+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.172325+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:21:53.591483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6808e025cf9cd42a209c7cfac47bd4407e28a75a0926a18602e09d78a9149fa8", "fetched_at": "2026-08-28T04:10:36.172325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet/yarp"}, {"content_hash": "3ce2f8d58831b192f8d78aed81243cf39bffc1c30e2550e9c1d6dc293860954f", "fetched_at": "2026-08-29T08:21:22.112329+00:00", "kind": "homepage", "missing": false, "url": "https://yarp.dot.net"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:21:53.591483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6808e025cf9cd42a209c7cfac47bd4407e28a75a0926a18602e09d78a9149fa8", "fetched_at": "2026-08-28T04:10:36.172325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet/yarp"}, {"content_hash": "3ce2f8d58831b192f8d78aed81243cf39bffc1c30e2550e9c1d6dc293860954f", "fetched_at": "2026-08-29T08:21:22.112329+00:00", "kind": "homepage", "missing": false, "url": "https://yarp.dot.net"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:21:53.591483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6808e025cf9cd42a209c7cfac47bd4407e28a75a0926a18602e09d78a9149fa8", "fetched_at": "2026-08-28T04:10:36.172325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet/yarp"}, {"content_hash": "3ce2f8d58831b192f8d78aed81243cf39bffc1c30e2550e9c1d6dc293860954f", "fetched_at": "2026-08-29T08:21:22.112329+00:00", "kind": "homepage", "missing": false, "url": "https://yarp.dot.net"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:21:53.591483+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6808e025cf9cd42a209c7cfac47bd4407e28a75a0926a18602e09d78a9149fa8", "fetched_at": "2026-08-28T04:10:36.172325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet/yarp"}, {"content_hash": "3ce2f8d58831b192f8d78aed81243cf39bffc1c30e2550e9c1d6dc293860954f", "fetched_at": "2026-08-29T08:21:22.112329+00:00", "kind": "homepage", "missing": false, "url": "https://yarp.dot.net"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 16}, "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": 2372, "days_push": 9, "days_rel": 552, "gap_med": 177, "n_releases_24m": 2}, "score": 70, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}