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§

pub use lru::AdaptiveCache;
pub use lru::AdaptiveCacheBuilder;
pub use lru::LRUCache;
pub use lru::RawLRU;
pub use lru::SegmentedCache;
pub use lru::SegmentedCacheBuilder;
pub use lru::TwoQueueCache;
pub use lru::TwoQueueCacheBuilder;
pub use lfu::WTinyLFUCache;
pub use lfu::WTinyLFUCacheBuilder;

Modules§

lfu
LFU based caches implementation.
lru
LRU based caches implementation.

Structs§

DefaultEvictCallback
DefaultEvictCallback is a noop evict callback.

Enums§

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

Traits§

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

Type Aliases§

DefaultHashBuilderstd
Re-export for DefaultHashBuilder