# basic-lru **Repository Path**: mirrors_WebReflection/basic-lru ## Basic Information - **Project Name**: basic-lru - **Description**: A fast and lightweight Map based LRU implementation. - **Primary Language**: Unknown - **License**: ISC - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-19 - **Last Updated**: 2026-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # basic-lru **Social Media Photo by [Mr Cup / Fabien Barral](https://unsplash.com/@iammrcup) on [Unsplash](https://unsplash.com/)** [![Build Status](https://travis-ci.com/WebReflection/basic-lru.svg?branch=master)](https://travis-ci.com/WebReflection/basic-lru) [![Coverage Status](https://coveralls.io/repos/github/WebReflection/basic-lru/badge.svg?branch=master)](https://coveralls.io/github/WebReflection/basic-lru?branch=master) A fast and lightweight, as in [684 bytes](https://unpkg.com/basic-lru), Map based LRU implementation. ```js import LRU from 'basic-lru'; const LRU = require('basic-lru'); // https://unpkg.com/basic-lru to have LRU globally // new LRU(maxSize) const lru = new LRU(100); // new LRU({max}) or new LRU({maxSize}) const lru = new LRU({max: 1000}); // new LRU({maxAge}) in milliseconds const lru = new LRU({maxAge: 1000}); // variants const lru = new LRU({max: 100, maxAge: 1000}); const lru = new LRU({maxSize: 100, maxAge: 1000}); ``` ### About This module is a drop-in replacement for any [Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance, and it's mostly 100% compatible with [lru](https://github.com/chriso/lru), [lru-cache](https://github.com/isaacs/node-lru-cache), [quick-lru](https://github.com/sindresorhus/quick-lru), and [lru-map](https://github.com/bchociej/lru-map) modules. Differently from other modules, this one has the least amount of LOC, zero dependencies, and it's based on _ES2015_ class capability to extend the native `Map`. ### The Map Extend Differences The only difference from a real Map, beside implementing a classic LRU cache, is the `peek(key)` method, to access an entry without flagging its access time anyhow, and borrowed from other libraries, plus a constructor, also borrowed from other libraries, that accepts either an integer, or an options object with `max`, or `maxSize`, and a `maxAge` property, where all of these are optional too.