Skip to content

Token bucket like limiter library based on redis storage (Rust version)

License

Notifications You must be signed in to change notification settings

TheWaWaR/bucket-limiter-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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(vec![
    (key.as_str(), 10, 10, 1),
    (key.as_str(), 3600, 600, 1),
    (key.as_str(), 24*3600, 10000, 1)]).is_ok() {
    // Process the request
} else {
    // Reject the request
}

About

Token bucket like limiter library based on redis storage (Rust version)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published