hypercore-cache
Version:
A caching module for Hypercore tree nodes and blocks
43 lines (30 loc) • 1.28 kB
Markdown
[](https://travis-ci.com/andrewosh/hypercore-cache)
A caching module for Hypercore tree nodes and blocks.
This module mplements the [hashlru](https://github.com/dominictarr/hashlru) algorithm internally for LRU caching, but it uses byte length estimates instead of the entry count for eviction.
```
npm i hypercore-cache --save
```
Creates a new cache.
Options can include:
```js
{
maxByteSize: 1e6, // The soft maximum size of the cache (actual max size can go up to 2x this value).
estimateSize: val => { ... }, // A function from a value to its size estimate.
onEvict: (evicted) => { ... } // A hook that's called when stale entries (a Map) have been evicted.
}
```
Sets `key` to `value`.
Gets the value for `key`.
Deletes `key` from the cache.
Creates a namespaced sub-cache which mirrors the hypercore-cache API.
This is useful if you want to create a single cache instance that manages resources for multiple hypercores.
MIT