#lru-cache #lru #lfu #tinylfu

wtinylfu

An implementation of W-TinyLFU cache

2 unstable releases

0.2.0 Jul 25, 2024
0.1.0 May 28, 2022

#115 in Caching

Download history 7/week @ 2024-09-13 15/week @ 2024-09-20 11/week @ 2024-09-27 2/week @ 2024-10-04

416 downloads per month
Used in dbeel

MIT license

21KB
524 lines

An implementation of W-TinyLFU cache

Implements W-TinyLFU cache as proposed in "TinyLFU: A Highly Efficient Cache Admission Policy" paper using only safe Rust. The API of this crate is meant to be similar to the API of lru crate.

Example usage

use wtinylfu::WTinyLfuCache;

fn main() {
    let mut cache = WTinyLfuCache::new(2, 10);
    cache.push(1, "one");
    cache.push(2, "two");
    assert_eq!(cache.get(&1), Some(&"one"));
    assert_eq!(cache.get(&2), Some(&"two"));
}

Contributing

Contributions are welcome! Currently this project is hosted both on GitHub and sr.ht. Contributions from either of these are accepted. Please follow contributing guidelines.

Dependencies

~625KB
~11K SLoC