Crate caches

source ·
Expand description

Caches

github Build codecov

docs.rs crates.io crates.io

license-apache license-mit

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

See Introduction, Installation and Usages for more details.

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 to support

If you want a high-performance thread-safe modern cache, please see stretto

Acknowledgments

Re-exports

Modules

  • LFU based caches implementation.
  • LRU based caches implementation.

Structs

Enums

  • PutResult is returned when try to put a entry in cache.

Traits

  • Cache contains the basic APIs for a cache. All of caches in this crate implement this trait.
  • OnEvictCallback is used to apply a callback for evicted entry.
  • Implement this trait for Cache to support resize.

Type Aliases