https://github.com/thewawar/bucket-limiter-rs
Token bucket like limiter library based on redis storage (Rust version)
https://github.com/thewawar/bucket-limiter-rs
bucket limiter redis rust token
Last synced: 10 months ago
JSON representation
Token bucket like limiter library based on redis storage (Rust version)
- Host: GitHub
- URL: https://github.com/thewawar/bucket-limiter-rs
- Owner: TheWaWaR
- License: mit
- Created: 2017-11-03T12:07:25.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-02-06T03:00:40.000Z (over 8 years ago)
- Last Synced: 2025-07-23T06:08:34.629Z (11 months ago)
- Topics: bucket, limiter, redis, rust, token
- Language: Rust
- Homepage: https://docs.rs/bucket-limiter/
- Size: 12.7 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
README
* bucket-limiter-rs
Token bucket like limiter library based on redis storage
[[https://github.com/TheWaWaR/bucket-limiter-py][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:
#+BEGIN_SRC rust
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
}
#+END_SRC