# simple-fifo-cache

> Easy to understand and tiny FIFO cache for use in-browser.

Latest version **0.0.7** (published 2023-03-15) · MIT license · 0 weekly downloads

## Install

```sh
npm install simple-fifo-cache
pnpm add simple-fifo-cache
yarn add simple-fifo-cache
bun add simple-fifo-cache
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.7 |
| Published | 2023-03-15 |
| First published | 2022-07-06 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Node | >= 16 |
| Dependencies | 0 |
| Unpacked size | 7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Rodolfo Yabut |
| Maintainers | rodocite |

## Links

- npm: https://www.npmjs.com/package/simple-fifo-cache
- npm.io page: https://npm.io/package/simple-fifo-cache

## Recent versions

- 0.0.7 (latest) — 2023-03-15
- 0.0.6 — 2022-07-06
- 0.0.5 — 2022-07-06
- 0.0.3 — 2022-07-06
- 0.0.2 — 2022-07-06
- 0.0.1 — 2022-07-06

## README

# Simple FIFO Cache

Easy to understand and tiny FIFO cache for use in-browser.

# About FIFO Cache

- It's time to revisit [LRU vs FIFO](https://www.usenix.org/system/files/hotstorage20_paper_eytan.pdf)
- Increasing the cache size does not benefit its efficiency (see [Bélády's anomaly](http://en.wikipedia.org/wiki/B%C3%A9l%C3%A1dy's_anomaly))

# Eviction Policy

The oldest item is removed once the cache is full.

# Installation
```js
yarn add simple-fifo-cache
```

# Usage

```js
import FIFOCache from "simple-fifo-cache";

const cache = new FifoCache();
cache.set("foo", "bar");
cache.set("baz", "qux");
cache.set("quux", "corge");

cache.get("foo"); // 'bar'
cache.get("baz"); // 'qux'

cache.flush(); // Clears the cache
```

### Benchmarks

```log
smallCache#new x 40,100,728 ops/sec ±0.81% (93 runs sampled)
largeCache#new x 41,600,752 ops/sec ±0.42% (96 runs sampled)
smallCache#put single value x 8,585,719 ops/sec ±2.83% (79 runs sampled)
largeCache#put single value x 7,813,169 ops/sec ±2.77% (76 runs sampled)
smallCache#get single value x 105,757,577 ops/sec ±0.30% (101 runs sampled)
largeCache#get single value x 105,168,620 ops/sec ±0.25% (98 runs sampled)
smallCache#put multiple values practical x 9,851 ops/sec ±3.08% (68 runs sampled)
largeCache#put multiple values practical x 8,607 ops/sec ±3.74% (71 runs sampled)
smallCache#put multiple values large x 986 ops/sec ±2.95% (72 runs sampled)
largeCache#put multiple values large x 828 ops/sec ±3.44% (73 runs sampled)
```

---
_Source: https://npm.io/package/simple-fifo-cache · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
