1 unstable release
0.1.2 | Jul 8, 2024 |
---|---|
0.1.1 |
|
0.1.0 |
|
#801 in Algorithms
14KB
263 lines
Throttle Lock
Throttle is an activity counter that can be used to monitor and limit activity such as incoming connections and sign in attempts.
Disclaimer: This library is not guaranteed and is not warranted to be fit for purpose. This code is not an appropriate replacement for dedicated security software and hardware. For demonstration purposes only.
Examples
Limit calls to an API to 5 per second, or lockout for one minute
use throttle_lock::Throttle;
let mut counter = Throttle::new(1000, 5, 1000*60);
if counter.is_throttled() {
println!("Try again later")
}
Limit signin attempts on an email address to 5 per minute, or lockout for 5 minutes.
use throttle_lock::ThrottleHash;
let mut counter = ThrottleHash::new(60*1000, 5, 3*60*1000);
let email:String = "john@example.com".to_string();
if counter.is_throttled(&email) {
println!("Try again later")
}
lib.rs
:
Throttle Lock is an activity counter that can be used to monitor and limit activity such as incoming connections and sign in attempts.
Examples
Limit calls to an API to 5 per second, or lockout for one minute
use throttle_lock::Throttle;
let mut counter = Throttle::new(1000, 5, 1000*60);
if counter.is_throttled() {
println!("Try again later")
}
Limit signin attempts on an email address to 5 per minute, or lockout for 5 minutes.
use throttle_lock::ThrottleHash;
let mut counter = ThrottleHash::new(60*1000, 5, 3*60*1000);
let email:String = "john@example.com".to_string();
if counter.is_throttled(&email) {
println!("Try again later")
}