Expand description
§cache-mod
HIGH-PERFORMANCE IN-PROCESS CACHING
Multiple eviction policies (LRU, LFU, TinyLFU, TTL, size-bounded). Async-safe, lock-minimized internals. Typed key-value API. No external store dependency.
§Status
Stable. As of 1.0.0 the public API surface is frozen under strict
SemVer — see docs/STABILITY.md for the full enumeration. Five
reference cache implementations sit behind a common Cache trait:
LruCache (Least-Recently-Used), LfuCache (Least-Frequently-Used),
TtlCache (Time-To-Live, lazy expiry), TinyLfuCache (Count-Min
Sketch admission filter + LRU main), and SizedCache (byte-bound
capacity). Internals are arena-backed and sharded for concurrent
throughput; the public surface does not depend on either choice and
will not change as those internals evolve in the 1.x line.
§Guarantees
- No
unsafe. This crate contains zerounsafeblocks. Every cache operation goes through safe abstractions only. - No
panic!, nounwrap, noexpect. The library code never calls any of these macros / methods on shipping paths. Where a non-panickingunreachable!()appears, it documents an invariant the caller is responsible for upholding insidepub(crate)arena helpers; every public method is panic-free given valid arguments.clippy::unwrap_usedandclippy::expect_usedare denied at the crate level. - No background threads. Every cache type uses lazy bookkeeping —
eviction, expiry, and sketch aging run on the call-site thread that
triggered them. No
std::thread::spawnhappens inside the crate. - No required runtime. The crate has no async runtime dependency.
&selfeverywhere lets you share cache instances across.awaitpoints if you do use one. - Send + Sync. Every cache type is
Send + SyncwhenK: Send + SyncandV: Send + Sync.
§Quick start
use cache_mod::{Cache, LruCache};
let cache: LruCache<&'static str, u32> = LruCache::new(64).expect("capacity > 0");
cache.insert("requests", 1);
cache.insert("errors", 0);
assert_eq!(cache.get(&"requests"), Some(1));
assert_eq!(cache.len(), 2);§License
Dual-licensed under Apache-2.0 OR MIT.
Structs§
- LfuCache
std - A bounded, thread-safe LFU cache.
- LruCache
std - A bounded, thread-safe LRU cache.
- Sized
Cache std - A cache bounded by total byte-weight rather than entry count.
- Tiny
LfuCache std - A bounded, thread-safe cache with admission control.
- TtlCache
std - A bounded, thread-safe cache with per-entry time-to-live.
Enums§
- Cache
Error - Errors produced by
cache-mod.
Constants§
- VERSION
- Crate version string, populated by Cargo at build time.
Traits§
- Cache
- The common read / write / evict contract every cache type in this crate implements.