#lru-cache #cache #lru #no-std #tinylfu

no-std caches

This is a Rust implementation for popular caches (support no_std)

12 releases

0.2.8 Dec 2, 2023
0.2.7 Oct 31, 2023
0.2.4 Jun 19, 2023
0.2.3 Nov 12, 2022
0.1.8 Sep 23, 2021

#215 in Data structures

Download history 94/week @ 2023-12-25 237/week @ 2024-01-01 402/week @ 2024-01-08 640/week @ 2024-01-15 889/week @ 2024-01-22 1189/week @ 2024-01-29 939/week @ 2024-02-05 589/week @ 2024-02-12 621/week @ 2024-02-19 447/week @ 2024-02-26 156/week @ 2024-03-04 446/week @ 2024-03-11 176/week @ 2024-03-18 540/week @ 2024-03-25 456/week @ 2024-04-01 855/week @ 2024-04-08

2,042 downloads per month
Used in rusvm

MIT/Apache

350KB
5.5K SLoC

Caches

github Build codecov

docs.rs crates.io crates.io

license

This is a Rust implementation for popular caches (support no_std).

See Introduction, Installation and Usages for more details.

English | 简体中文

Introduction

The MSRV for this crate is 1.55.0.

  • LRU
    • LRUCache, SegmentedCache, TwoQueueCache and AdaptiveCache.
  • LFU
    • TinyLFU, SampledLFU, and WTinyLFUCache

Installation

  • std
    [dependencies]
    caches = "0.2" 
    
  • no_std
    [dependencies]
    caches = {version: "0.2", default-features = false }
    

Usages

Please see examples.

Roadmap

  • 0.2: Support TinyLFU, SampledLFU, WTinyLFUCache
  • 0.3: Support LIRS, DLIRS, DSLRU
  • 0.4: Add ttl feature

If you want a high-performance thread-safe modern cache, please see https://crates.io/crates/stretto

Acknowledgments

License

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.

Dependencies

~1–1.7MB
~35K SLoC