A LRU cache built on WeakRefs and FinalizationRegistry
npm install infinicacheA cache for Node.js that can use all available system memory without crashing.
It's based on WeakRef and FinalizationRegistry.
``bash`
npm i infinicache
`js
import Cache from 'infinicache'
import { promisify } from 'util'
const immediate = promisify(setImmediate)
const cache = new Cache()
// Create a scope so that obj goes
// out of scope
{
const obj = { foo: 'bar' }
cache.set('hello', obj)
console.log(cache.get('hello'))
}
await immediate()
// We need to allocate a bazillion amount of objects
// to trigger a GC
const data = []
for (let i = 0; i < 1000000; i++) {
data.push({ i })
}
console.log(cache.get('hello'))
`
Note that this Cache is slower than most LRU caches. If you are looking for an LRU cache,
use mnemonist LRUCache`.
MIT