9 releases

Uses old Rust 2015

0.1.2 Mar 21, 2019
0.1.1 Mar 29, 2017
0.1.0 Oct 7, 2016
0.0.7 Feb 19, 2016
0.0.2 Mar 26, 2015

#41 in Caching

Download history 478027/week @ 2025-10-13 484946/week @ 2025-10-20 512958/week @ 2025-10-27 506942/week @ 2025-11-03 427372/week @ 2025-11-10 494350/week @ 2025-11-17 331892/week @ 2025-11-24 434069/week @ 2025-12-01 409745/week @ 2025-12-08 358835/week @ 2025-12-15 154074/week @ 2025-12-22 147382/week @ 2025-12-29 352595/week @ 2026-01-05 388403/week @ 2026-01-12 396547/week @ 2026-01-19 398582/week @ 2026-01-26

1,548,751 downloads per month
Used in 1,795 crates (74 directly)

MIT/Apache

20KB
291 lines

A cache that holds a limited number of key-value pairs. When the capacity of the cache is exceeded, the least-recently-used (where "used" means a look-up or putting the pair into the cache) pair is automatically removed.

Examples

use lru_cache::LruCache;

let mut cache = LruCache::new(2);

cache.insert(1, 10);
cache.insert(2, 20);
cache.insert(3, 30);
assert!(cache.get_mut(&1).is_none());
assert_eq!(*cache.get_mut(&2).unwrap(), 20);
assert_eq!(*cache.get_mut(&3).unwrap(), 30);

cache.insert(2, 22);
assert_eq!(*cache.get_mut(&2).unwrap(), 22);

cache.insert(6, 60);
assert!(cache.get_mut(&3).is_none());

cache.set_capacity(1);
assert!(cache.get_mut(&2).is_none());

WARNING: THIS PROJECT IS IN MAINTENANCE MODE, DUE TO INSUFFICIENT MAINTAINER RESOURCES

It works fine, but will generally no longer be improved.

We are currently only accepting changes which:

  • keep this compiling with the latest versions of Rust or its dependencies.
  • have minimal review requirements, such as documentation changes (so not totally new APIs).

A cache that holds a limited number of key-value pairs.

Documentation is available at https://contain-rs.github.io/lru-cache/lru_cache.

Dependencies

~220KB