The MSRV for this crate is 1.55.0.
LRUCache
, SegmentedCache
, TwoQueueCache
and AdaptiveCache
.TinyLFU
, SampledLFU
, and WTinyLFUCache
[dependencies]
caches = "0.2"
[dependencies]
caches = {version: "0.2", default-features = false }
Please see examples
.
0.2
: Support TinyLFU, SampledLFU, WTinyLFUCache0.3
: Support LIRS, DLIRS, DSLRU0.4
: Add ttl featureIf you want a high-performance thread-safe modern cache, please see https://crates.io/crates/stretto
The implementation of RawLRU
is highly inspired by
Jerome Froelich's LRU implementation
and std::collections
library of Rust.
Thanks for HashiCorp's golang-lru providing the amazing Go implementation.
Ramakrishna's paper: Caching strategies to improve disk system performance
The implementation of TinyLFU and SampledLFU are inspired by Dgraph's ristretto and dgryski's go-tinylfu.
Gil Einziger's paper: TinyLFU: A Highly Efficient Cache Admission Policy
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.