A Java library for Rate-Limiting, providing extensible storage and application framework adaptors.
Java Lua
Clone or download


RateLimitJ Logo


Build Status Codecov Maven Central license

A Java library for rate limiting, assembled using extensible storage and application framework adaptors. The library's interfaces support thread-safe sync, async, and reactive usage patterns.


RateLimitJ provides the following stable plugable modules:


  • Uses an efficient approximated sliding window algorithm for rate limiting
  • Multiple limit rules per instance


Binaries and dependency information for Maven, Ivy, Gradle and others can be found at Maven Central.

Example for Maven:



  • RateLimitJ requires Java 8


Feature Status
Redis sliding window rate limiter production
Dropwizard integration - Bundle production
In-memory sliding window rate limiter stable
In-memory concurrent rate limiter beta
Rate limiting toggles (dark launch) for framework integration beta
Hazelcast sliding window rate limiter beta/dev
Redis concurrent rate limiter dev/active
Enhanced metrics logging back log
Whitelisting & blacklisting of keys back log
Rate limit HTTP header responses back log
Async in-memory rate limit buffer/cache (inspired by Google's SRE book) back log
Spring integration back log


RateLimitJ is built with Gradle and requires docker to spin up Redis for the Redis module.

To build:

$ git clone https://github.com/mokies/ratelimitj.git
$ cd ratelimij/
$ ./gradlew


This library was inspired by the following articles on sliding window rate limiting with Redis:

Background Reading