The MSRV for this crate is 1.55.0.
LRUCache
, SegmentedCache
, TwoQueueCache
and AdaptiveCache
.TinyLFU
, SampledLFU
, and WTinyLFUCache
toml
[dependencies]
caches = "0.2"
toml
[dependencies]
caches = {version: "0.2", features: ["core"]}
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.