ratelimit
by
envoyproxy

Description: Go/gRPC service designed to enable generic rate limit scenarios from different types of applications.

View on GitHub ↗

Summary Information

Updated 39 minutes ago
Added to GitGenius on July 14th, 2023
Created on January 26th, 2017
Open Issues & Pull Requests: 41 (+0)
Number of forks: 521
Total Stargazers: 2,669 (+0)
Total Subscribers: 145 (+0)

Issue Activity (beta)

Open issues: 15
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,379 days
Stale 30+ days: 13
Stale 90+ days: 10

Recent activity

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

Top labels

  • stale (85)
  • help wanted (15)
  • bug (3)
  • question (3)
  • design proposal (1)
  • enhancement (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Repository Insights (GitGenius)

Median issue/PR response: 46.0 hours
Mean response time: 173.1 days
90th percentile: 494.3 days
Tracked items: 61

Most active contributors

Detailed Description

The envoyproxy/ratelimit repository is a Go and gRPC service that provides generic rate limiting capabilities for applications of various types. The service enables applications to request rate limit decisions based on a domain and a set of descriptors, then reads configuration from disk, composes a cache key, and consults a Redis cache to return a decision to the caller. This architecture makes it particularly useful for distributed systems that need to enforce traffic control policies across multiple services.

The repository is classified across 21 distinct categories including distributed systems, traffic management, concurrency limits, HTTP filters, Envoy proxy integration, flow control, API throttling, service mesh support, network efficiency, protocol support, resource allocation, HTTP/2 support, request control, load balancing, traffic control, API gateway functionality, request throttling, distributed rate limiting, network performance, rate limiting, and quota management. This broad classification reflects the service's versatility in handling different rate limiting scenarios across modern infrastructure.

The Docker image for this service uses Google's distroless base image specifically gcr.io/distroless/static-debian12:nonroot, pinned to a specific SHA digest for deterministic builds. The distroless approach provides enhanced security through minimal attack surface, smaller image sizes, reduced vulnerabilities, better compliance with security requirements, non-root execution as UID 65532, and reproducible builds. For every main commit, an image is pushed to Dockerhub with tags based on commit SHA rather than semantic versioning post v1.4.0.

The service currently supports the v3 rls.proto API from the Envoy data-plane-api, with v2 rls.proto now deprecated. The API deprecation history shows that v1.0.0 was tagged after the service had been in production use at Lyft for over two years. Version 1.1.0 introduced the data-plane-api proto and initiated deprecation of the legacy ratelimit.proto. A subsequent commit deleted support for the legacy ratelimit.proto, and later another commit removed support for the legacy v2 rls.proto entirely.

The README documents extensive configuration capabilities including file-based and xDS Management Server-based configuration loading, support for local cache and Redis backends with connection pool settings, Memcache support, custom headers, tracing, TLS and mTLS support, health checking, gRPC keepalive settings, statistics collection via DogStatsD and Prometheus, and debug endpoints. The configuration format uses YAML to support comments and includes features like shadow mode, descriptor definitions, rate limit definitions, and wildcard threshold sharing.

According to GitGenius activity tracking across 61 items, the repository shows a median issue and pull request response latency of 46 hours with a mean of 4154.2 hours, indicating variable response times. The most active issue label is stale with 33 occurrences, followed by help wanted with 5 and question with 1. The most active triagers and contributors tracked are xuannam230201 with 10 events, collin-lee with 7 events, and johnzheng1975 with 6 events. The repository shares overlapping contributors with envoyproxy/gateway, envoyproxy/envoy, and argoproj/argo-cd, indicating integration within the broader Envoy ecosystem and cloud-native infrastructure projects.

ratelimit
by
envoyproxyenvoyproxy/ratelimit

Repository Details

Fetching additional details & charts...