3个不稳定版本
使用旧Rust 2015
0.2.0 | 2017年11月4日 |
---|---|
0.1.1 | 2017年11月3日 |
0.1.0 | 2017年11月3日 |
11 in #token-bucket
14KB
329 行
bucket-limiter-rs
基于redis存储的类似令牌桶的限流库 Python版本
示例(用例)
假设你有一个API服务,并想限制用户请求频率,例如
- 每天10,000次请求
- 每小时600次请求
- 每10秒10次请求
你可以这样做
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
}
依赖项
~3MB
~80K SLoC