2 releases
0.1.9 | Jan 7, 2022 |
---|---|
0.1.8 | Jan 4, 2022 |
0.1.7 |
|
#294 in Caching
45 downloads per month
98KB
2K
SLoC
Endorphin
Key-Value based in-memory cache library which supports Custom Expiration Policies with standard HashMap, HashSet interface.
Example
use std::thread::sleep;
use std::time::Duration;
use endorphin::policy::TTLPolicy;
use endorphin::HashMap;
fn main() {
let mut cache = HashMap::new(TTLPolicy::new());
cache.insert("Still", "Alive", Duration::from_secs(3));
cache.insert("Gonna", "Die", Duration::from_secs(1));
sleep(Duration::from_secs(1));
assert_eq!(cache.get(&"Still"), Some(&"Alive"));
assert_eq!(cache.get(&"Gonna"), None);
}
Currently, we are providing four pre-defined policies.
LazyFixedTTLPolicy
uses Lazy Expiration as other cache crates do, it expires items when you access entry after its TTL.TTLPolicy
uses Active Expiration which expires even you don't access to expired entries.TTIPolicy
uses Active Expiration which expires even you don't access to expired entries.MixedPolicy
is mixed policy of TTL and TTI
Dependencies
~2MB
~34K SLoC