GitPedia

Ratelimitj

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

From mokies·Updated May 16, 2026·View on GitHub·

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. The project is written primarily in Java, distributed under the Apache License 2.0 license, first published in 2016. Key topics include: dropwizard, java, rate-limits, redis, sliding-windows.

Latest release: 0.7.0-RC1Sawtooth Peak, (Sequoia National Park) California
July 30, 2020View Changelog →

This project is no longer supported, please consider using Bucket4j instead

RateLimitJ Logo

RateLimitJ

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.

Modules

RateLimitJ provides the following stable plugable modules:

Features

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

Binaries/Download

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

Example for Maven:

xml
<dependency> <groupId>es.moki.ratelimitj</groupId> <artifactId>ratelimitj-redis</artifactId> <version>${ratelimitj-redis.version}</version> </dependency>

Prerequisite

  • RateLimitJ requires Java 8

Roadmap

FeatureStatus
Redis sliding window rate limiterproduction
Dropwizard integration - Bundleproduction
In-memory sliding window rate limiterstable
In-memory concurrent rate limiterbeta
Rate limiting toggles (dark launch) for framework integrationbeta
Hazelcast sliding window rate limiterbeta/dev
Redis concurrent rate limiterdev/active
Enhanced metrics loggingback log
Whitelisting & blacklisting of keysback log
Rate limit HTTP header responsesback log
Async in-memory rate limit buffer/cache (inspired by Google's SRE book)back log
Spring integrationback log

Building

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

Credits

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

Background Reading

Authors

Contributors

Showing top 10 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from mokies/ratelimitj via the GitHub API.Last fetched: 6/27/2026