Nerdiest Political Manifesto

    susi-rali

    0.2.2 • Public • Published

    susi-rali

    NPM

    NodeJs Super Simple Rate Limiter : susi-rali.

    This tool offers a way to rate limit a given action acting as client point of view. (In state this project is not designed to apply to rate limit server handlers and return 429 error for example)

    Features

    • limitedCall - rate limited business promise method with result.

    Susi super limitations:

    • BETA: this project is in beta state. limit have not yet been evaluated. Input validation is light
    • dont scale up: as this project dont yet rely on shared storage (ex. db or redis), usage must be limited to one instance.

    Quick start

    install susi-rali

    npm install susi-rali
    

    then let's go:

    const SusiRali = require('susi-rali')
    const windowsMs=1000;
    const maxQueryPerWindow=10;
    const susi = new SusiRali({windowsMs, maxQueryPerWindow});
    
    await susi.limitedCall(() => businessCode("businessArg"))
             .then((businessResolved)=>console.log(">" + businessResolved));
    

    Advanced usage

    SusiRali options

    This section describes SusiRali available options.

    Note about options precedence: first take option value from constructor if any, or else apply default value.

    • windowsMs : Rate limit windows size in milliseconds - optional with default value: 1000
    • maxQueryPerWindow : Rate limit max query per windows size - optional with default value: 10
    • maxProcessingPerWindow : Rate limit max query processing per windows size - optional with default value: maxQueryPerWindow

    How to contribute

    You're not a dev ? just submit an issue (bug, improvements, questions). Or else:

    • Clone
    • Install deps
    • Then mocha tests
    git clone https://github.com/creharmony/susi-rali.git
    cd susi-rali
    npm install
    # play tests
    npm run test
    # play different parallel configurations
    npm run manual
    
    • you could also fork, feature branch, then submit a pull request.

    Services or activated bots

    badge name description
    CI/CD Github actions Continuous tests.
    Audit Github actions Continuous vulnerability audit.
    Houndci JavaScript automated review (configured by .hound.yml)
    Automated Release Notes by gren GREN Automated Release Notes by gren

    Install

    npm i susi-rali

    DownloadsWeekly Downloads

    16

    Version

    0.2.2

    License

    MIT

    Unpacked Size

    24.6 kB

    Total Files

    16

    Last publish

    Collaborators

    • boly38