Skip to content
This repository has been archived by the owner on Feb 17, 2024. It is now read-only.
/ vaxic-ratelimit Public archive

A powerful continuous rate limit extension for Vaxic.

License

Notifications You must be signed in to change notification settings

ethanent/vaxic-ratelimit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vaxic-ratelimit

A powerful rate limit extension for Vaxic.

GitHub | NPM

Install

npm i vaxic-ratelimit

Usage

First, require the package.

const RateLimiter = require('vaxic-ratelimit')
// ... create your Vaxic app ^

const rl = new RateLimiter({
	// options
}, [
	// rules
])

app.use(rl.extension)

// ... start server v

Rules

Rules are Objects. Properties of a rule:

  • time required - How much time to look through logs for to find matching requests. This is an array, which looks like this: [5, 'seconds'] or [6, 'minutes']
  • limit required - How many requests to allow within this period of time
  • method - Request method
  • pathname - Request pathname. Can be a Regular Expression or a String.
  • blockMessage - Message to respond with when blocking (as error property of JSON response)

Options

Options:

  • cloudflare - If enabled, uses the CF-Connecting-IP header to detect client IPs
  • blockMessage - Message to respond with when blocking (used when no blockMessage is defined)
  • varyLimit- If enabled, varies limit for rules per request by up to 2 requests, making it harder for attackers to detect ratelimiting rules

Releases

No releases published

Packages

No packages published