{"adoption": {"forks": 531, "observed_at": "2026-08-28T04:07:10.267765+00:00", "stars": 2686}, "canonical_url": "https://ross.abutalabs.com/products/envoyproxy-ratelimit", "card": {"archived": false, "artifact_type": "service", "description": "Go/gRPC service designed to enable generic rate limit scenarios from different types of applications.", "domain": ["backend", "microservices", "apis", "infrastructure-as-code"], "enriched": true, "function": ["rate-limiting", "rpc", "caching"], "health_score": 80, "homepage": null, "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["envoyproxy/ratelimit"], "name": "envoyproxy/ratelimit", "platform": ["go", "self-hosted"], "pushed_at": "2026-08-26T08:18:55+00:00", "repo": "envoyproxy/ratelimit", "stars": 2686, "tags": ["grpc", "envoy", "redis", "global-rate-limiting", "xds", "docker", "linux"], "topics": [], "urls": [], "use_cases": ["rate limit api requests across a distributed system", "centralized rate limiting service for envoy proxy", "limit requests per user or per ip with redis-backed counters", "global rate limiting for microservices behind a gateway", "configure rate limits via xDS management server", "shadow mode rate limiting to test limits before enforcing"], "what_it_is": "A Go/gRPC rate limiting service from the Envoy project that provides centralized, generic rate limiting for distributed applications. It stores counters in Redis and integrates natively with Envoy proxy's rate limit filter, with configuration loaded from files or an xDS management server.", "when_to_avoid": ["you need simple in-process rate limiting in a single application", "you don't operate Redis or a service mesh and just need library-level throttling", "your stack is not Go/Envoy-oriented and a lighter middleware would suffice"], "when_to_choose": ["you run Envoy proxy and need its rate limit filter backed by a central service", "you need consistent global rate limits across multiple service instances", "you want Redis-backed counters with Prometheus or DogStatsD metrics"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/envoyproxy-ratelimit", "repo": "envoyproxy/ratelimit", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:10.267765+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:17:47.562258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "231ebd8a62f61189325696da13d160c80235f41333b3206fd757843c77ae5163", "fetched_at": "2026-08-28T04:07:10.267765+00:00", "kind": "readme", "missing": false, "url": "https://github.com/envoyproxy/ratelimit"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:10.267765+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:17:47.562258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "231ebd8a62f61189325696da13d160c80235f41333b3206fd757843c77ae5163", "fetched_at": "2026-08-28T04:07:10.267765+00:00", "kind": "readme", "missing": false, "url": "https://github.com/envoyproxy/ratelimit"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:17:47.562258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "231ebd8a62f61189325696da13d160c80235f41333b3206fd757843c77ae5163", "fetched_at": "2026-08-28T04:07:10.267765+00:00", "kind": "readme", "missing": false, "url": "https://github.com/envoyproxy/ratelimit"}], "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:07:10.267765+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:10.267765+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:10.267765+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:17:47.562258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "231ebd8a62f61189325696da13d160c80235f41333b3206fd757843c77ae5163", "fetched_at": "2026-08-28T04:07:10.267765+00:00", "kind": "readme", "missing": false, "url": "https://github.com/envoyproxy/ratelimit"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:10.267765+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:10.267765+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:17:47.562258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "231ebd8a62f61189325696da13d160c80235f41333b3206fd757843c77ae5163", "fetched_at": "2026-08-28T04:07:10.267765+00:00", "kind": "readme", "missing": false, "url": "https://github.com/envoyproxy/ratelimit"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:10.267765+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:10.267765+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:10.267765+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:17:47.562258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "231ebd8a62f61189325696da13d160c80235f41333b3206fd757843c77ae5163", "fetched_at": "2026-08-28T04:07:10.267765+00:00", "kind": "readme", "missing": false, "url": "https://github.com/envoyproxy/ratelimit"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:10.267765+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:10.267765+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:17:47.562258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "231ebd8a62f61189325696da13d160c80235f41333b3206fd757843c77ae5163", "fetched_at": "2026-08-28T04:07:10.267765+00:00", "kind": "readme", "missing": false, "url": "https://github.com/envoyproxy/ratelimit"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:17:47.562258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "231ebd8a62f61189325696da13d160c80235f41333b3206fd757843c77ae5163", "fetched_at": "2026-08-28T04:07:10.267765+00:00", "kind": "readme", "missing": false, "url": "https://github.com/envoyproxy/ratelimit"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:17:47.562258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "231ebd8a62f61189325696da13d160c80235f41333b3206fd757843c77ae5163", "fetched_at": "2026-08-28T04:07:10.267765+00:00", "kind": "readme", "missing": false, "url": "https://github.com/envoyproxy/ratelimit"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:17:47.562258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "231ebd8a62f61189325696da13d160c80235f41333b3206fd757843c77ae5163", "fetched_at": "2026-08-28T04:07:10.267765+00:00", "kind": "readme", "missing": false, "url": "https://github.com/envoyproxy/ratelimit"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 8}, "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": 3506, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}