// the find
mennanov/limiters
Golang rate limiters for distributed applications
A Go library implementing four rate limiting algorithms (token bucket, leaky bucket, fixed window, sliding window) plus a concurrent buffer, each with pluggable backends spanning Redis, etcd, DynamoDB, Cosmos DB, Postgres, Consul, and more. Aimed at teams running distributed Go services who want a single library rather than rolling their own cross-node coordination. The gRPC interceptor example is the primary advertised use case.
The backend matrix is genuinely wide — Redis, etcd, DynamoDB, Cosmos DB, Postgres, and Memcached all covered without forcing you to pick one. Distributed lock support is first-class and correctly separated from the algorithm implementations, so you can swap backends without changing the limiting logic. The sliding window implementation honestly documents the all-or-nothing behavior under flood conditions, which most libraries gloss over. Codecov and golangci-lint are both wired into CI, so the quality bar is higher than the typical 'works on my machine' library.
643 stars for a library that covers this much ground suggests it hasn't broken out of niche use — probably because most teams already handle rate limiting at the infra layer (nginx, API gateway, Redis directly). The Memcached section in the README basically talks you out of using Memcached, which raises the question of why it's there at all. No HTTP middleware is provided out of the box; the gRPC interceptor example is copy-paste and works, but plain HTTP users have to wire it themselves. DynamoDB setup requires pre-creating tables with the right key schema, and the docs for this are thin — the struct names you need aren't obvious until you read the source.