rate-limit-keyvdeprecated

A Keyv based store for Express rate limit

Usage no npm install needed!

<script type="module">
  import rateLimitKeyv from 'https://cdn.skypack.dev/rate-limit-keyv';
</script>

README

Rate Limit Keyv

Back-end Support

  • Redis
  • MongoDB
  • SQLite
  • PostgreSQL
  • MySQL
  • Third-party storage adapters (see Keyv docs)

Usage

In Memory

const RateLimit = require('express-rate-limit');
const Keyv = require('keyv');
const KeyvStore = require('rate-limit-keyv');
const express = require('express');
const app = express();

const limiter = new RateLimit({
  store: new KeyvStore(new Keyv({ namespace: 'rate-limit' }))
});

app.use(limiter);

Redis

const RateLimit = require('express-rate-limit');
const Keyv = require('keyv');
const KeyvStore = require('rate-limit-keyv');
const express = require('express');
const app = express();

const limiter = new RateLimit({
  store: new KeyvStore(new Keyv('redis://user:pass@localhost:6379', { namespace: 'rate-limit' }))
});

app.use(limiter);

MongoDB

const RateLimit = require('express-rate-limit');
const Keyv = require('keyv');
const KeyvStore = require('rate-limit-keyv');
const express = require('express');
const app = express();

const limiter = new RateLimit({
  store: new KeyvStore(new Keyv('mongodb://user:pass@localhost:27017/dbname', { namespace: 'rate-limit' }))
});

app.use(limiter);

SQLite

const RateLimit = require('express-rate-limit');
const Keyv = require('keyv');
const KeyvStore = require('rate-limit-keyv');
const express = require('express');
const app = express();

const limiter = new RateLimit({
  store: new KeyvStore(new Keyv('sqlite://path/to/dbname.sqlite', { namespace: 'rate-limit' }))
});

app.use(limiter);

PostgreSQL

const RateLimit = require('express-rate-limit');
const Keyv = require('keyv');
const KeyvStore = require('rate-limit-keyv');
const express = require('express');
const app = express();

const limiter = new RateLimit({
  store: new KeyvStore(new Keyv('postgresql://user:pass@localhost:5432/dbname', { namespace: 'rate-limit' }))
});

app.use(limiter);

MySQL

const RateLimit = require('express-rate-limit');
const Keyv = require('keyv');
const KeyvStore = require('rate-limit-keyv');
const express = require('express');
const app = express();

const limiter = new RateLimit({
  store: new KeyvStore(new Keyv('mysql://user:pass@localhost:3306/dbname', { namespace: 'rate-limit' }))
});

app.use(limiter);