bucket-limiter 0.2.0

Token bucket like limiter library based on redis storage
Documentation

bucket-limiter-rs

Token bucket like limiter library based on redis storage Python version

Example (use case)

Assume you have a API service, and want to limit user request rate like:

  • 10,000 requests/day
  • 600 requests/1-hour
  • 10 requests/10-seconds

You can do this:

let limiter = RedisLimiter::default();
let key = format!("{}:{}", request.endpoint, request.method);
// Once one request has come
if (limiter.consume_one(key, 10, 10) &&
    limiter.consume_one(key, 3600, 600) &&
    limiter.consume_one(key, 24*3600, 10000)) {
    // Process the request
} else {
    // Reject the request
}