All Versions
Latest Version
Avg Release Cycle
44 days
Latest Release
1034 days ago

Changelog History
Page 1

  • v2.1.10 Changes

    August 02, 2020
    • ๐Ÿšš RateLimiterQueue support of tokens removed by key. (single bucket for every key)
    • โž• Add RateLimiterQueue missing methods types. Thank you @bmenant
    • โšก๏ธ RateLimiterPostgres fixed for [email protected] update. Thank you @matomesc
    • tableCreated option for MySQL and PostgreSQL to skip checks for limiter tables.
    • BurstyRateLimiter compatible with RateLimiterQueue now. Thanks a lot to @matomesc for a big help on this.
    • โœ… RateLimiterMemory limiter works in browser now. Thanks a bunch to @cha0s. Also, thank you for test scripts improvements.
  • v2.1.3 Changes

    March 15, 2020

    Every time consume method executed, it returns msBeforeNext milliseconds. This can be used to block key in memory for exact msBeforeNext milliseconds until points are reset on store.

  • v2.1.1

    March 15, 2020
  • v2.1.0 Changes

    March 15, 2020

    ๐Ÿ‘ Allow traffic bursts with BurstyRateLimiter

  • v2.0.0 Changes

    February 09, 2020


    • ๐Ÿšš Redis uses Lua script for expiring atomic increments. It allowed to removed a hack, which makes extra queries to Redis, when TTL is not set on key.
    • ๐Ÿ›  RateLimiterCluster options type fixed.


    • ๐Ÿšš isWhite and isBlack getters/setters and options support removed from RLWrapperBlackAndWhite. isWhiteListed and isBlackListed options should be used instead.
    • ๐Ÿšš IRateLimiterResOptions interface type removed from lib/index.d.ts. IRateLimiterRes should be used.
  • v1.3.0 Changes

    January 14, 2020
    • ๐Ÿ†• New set method implemented for all limiters.
    • ๐Ÿ›  RateLimiterRes constructor types is fixed. Thanks @raelcun
    • ๐Ÿ—„ IRateLimiterResOptions is deprecated in favour of IRateLimiterRes interface.
    • ๐Ÿ—„ RLWrapperBlackAndWhite options isWhite and isBlack are deprecated. Use isBlackListed and isWhiteListed instead.
  • v1.2.0 Changes

    December 14, 2019
    • All limiters support Never Expiring keys now. If limiter option duration is 0 or block method called with 0 duration, key is never expiring. Note: if you want to start using never expiring keys with already created MySQL or Postgres limiters, make sure database table is re-created or alter db table to allow expire column to be NULL.
    • โž• Added IRateLimiterResOptions interface. Thank you Eladio Mora.
    • ๐Ÿ‘• Tests configured to be checked by eslint now. Thanks @mkxml (issue #28)
    • ๐Ÿ›  Fixed typing for rateLimiterInstance.get(). Thanks @ephemer.
    • ๐Ÿ›  Fixed ExpressBruteFlexible reset works with ignoreIP option.
    • โž• Added ExpressBruteFlexible prefix option for keys.
  • v1.1.2 Changes

    September 21, 2019
    • ๐Ÿ›  Fix #36 to allow dashes in MySQL database name.
    • RateLimiterQueue TypeScript bindings.
    • ๐Ÿ›  Fix Cluster limiter: it should respect all possible options to make difference between several limiters.
  • v1.1.0 Changes

    July 14, 2019

    ๐Ÿ”‹ Features:

    • ๐Ÿ‘ RateLimiterQueue limiter with FIFO queue support on single server or distributed environment.

    ๐Ÿ› Bug-fixes:

    • ๐Ÿ‘‰ Use Mongo limiter with mongoose even if connection is not established yet. Thanks to @tero (issue #26)
    • Maximum call stack size exceeded on unavailable memcached. Thanks to @OndroNR (issue #33)
    • Wiki Login endpoint protection example bug. Thanks to @hburrows (issue #35)
  • v1.0.0 Changes

    April 20, 2019

    ๐Ÿ”‹ Features:

    • โž• add ExpressBrute analog middleware
    • ๐Ÿ‘‰ use blockDuration with inmemoryBlock