Skip to content

tinyhttp/lru-send

 
 

Repository files navigation

lru-send

npm GitHub Workflow Status Coverage

LRU-based caching middleware for Node.js that patches res.send.

Features

  • 😲 ~336x faster for heavy operations
  • ⚡ ESM-only
  • ✨ types out of the box
  • 🟥 (optionally) supports Redis

Install

pnpm i lru-send

Examples

In-memory

import { lruSend } from 'lru-send'
import { App } from '@tinyhttp/app'

const app = new App()

app.use(lruSend())

app.use('/', (_req, res) => {
  someUltraHeavyOp()
  res.send('hello')
})

app.listen(3000)

Redis

import { lruSend } from 'lru-send/redis'
import { App } from '@tinyhttp/app'
import Redis from 'ioredis'

const redis = new Redis()

const app = new App()

app.use(lruSend(redis))

app.use('/', (_req, res) => {
  someUltraHeavyOp()
  res.send('hello')
})

app.listen(3000)