Skip to content

Key-Value based in-memory cache library which supports Custom Expiration Policies

License

Notifications You must be signed in to change notification settings

ArtBlnd/endorphin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Key-Value based in-memory cache library which supports Custom Expiration Policies

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages