Skip to content

A Java library for rate limiting providing extensible storage and application framework adaptors

License

Notifications You must be signed in to change notification settings

hawka11/ratelimitj

 
 

Repository files navigation

RateLimitJ

Build Status 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 is currently provides the following plugable modules:

Features

  • Uses an efficient 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:

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

Prerequisite

  • RateLimitJ requires Java 8

Roadmap

Feature Status
Redis sliding window rate limiter Release
Dropwizard integration - Bundle Release
Hazelcast sliding window rate limiter Development
In-memory sliding window rate limiter Development
Whitelisting & blacklisting of keys not started
Spring integration not started

Credits

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

Authors

About

A Java library for rate limiting providing extensible storage and application framework adaptors

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 96.5%
  • Lua 3.5%