NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #520 most downloaded on PyPI
Rate limiting utilities
Last release 8 months ago
05 Feb 2026
Release timing varies
gaps range from 9 days to 4 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
98 releases · first in 2015
Allow explicit keyword arguments for storage options for username & password for storages that support it.
startup_nodes through keywordRelease Date: 2026-02-04
Bug Fix
Allow explicit keyword arguments for storage options for username & password for storages that support it.
Allow explicitly specifying startup_nodes through keyword arguments for all redis cluster storages.
Support IPv6 addresses in cluster locators in storage uri
Relax extras constraints for redis (<8)
One column per quarter.
Release Date: 2026-02-03
Compatibility
Relax extras constraints for redis (<8)
Move all project metadata to pyproject
Release Date: 2025-09-29
Development
Move all project metadata to pyproject
Use uv for development
Use hatch for package build
Remove versioneer for versioning
Relax upper bound of packaging requirement
packaging requirementcoredis requirementredis requirementRelease Date: 2025-08-05
Compatibility
Relax upper bound of packaging requirement
Increase upper bound of coredis requirement
Increase upper bound of redis requirement
Relax regular expression used in limits.parse and limits.parse_many to capture any granularity instead of just the hardcoded ones so that custom rate
limits.parse andlimits.parse_many to capture any granularity instead ofRelease Date: 2025-06-16
Feature
Relax regular expression used in limits.parse and limits.parse_many to capture any granularity instead of just the hardcoded ones so that custom rate limits can also be extracted using the utility functions. Issue 279
Compatibility
Add redis 8.0 to CI
Fix race condition during expiration of in-memory moving window limits that resulted in incorrectly removing unexpired entries. Issue 277
Release Date: 2025-06-13
Bug Fix
Fix race condition during expiration of in-memory moving window limits that resulted in incorrectly removing unexpired entries. Issue 277
Fix incorrect behavior of the clear method for sliding window counter which effectively did not clear the sliding window for redis, memcached & in mem
clear method for sliding windowRelease Date: 2025-05-16
Bug Fix
Fix incorrect behavior of the clear method for sliding window counter which effectively did not clear the sliding window for redis, memcached & in memory storage implementations. Issue 276
Expose key_prefix constructor argument for all redis storage implementations to simplify customizing the prefix used for all keys created in redis.
key_prefix constructor argument for all redis storageRelease Date: 2025-04-23
Features
Expose key_prefix constructor argument for all redis storage implementations to simplify customizing the prefix used for all keys created in redis.
Improved performance of redis moving window test and get_window_stats operations especially when dealing with large rate limits.
to memcachio`
test and get_window_stats operationstest and get_window_stats operations.Release Date: 2025-04-15
Backward incompatible changes
Dropped support for Fixed Window with Elastic Expiry strategy
Dropped support for etcd
Changed the default implementation for async+memached from emcache to :pypi`:memcachio`
Performance
Improved performance of redis moving window test and get_window_stats operations especially when dealing with large rate limits.
Improved performance of mongodb moving window test and get_window_stats operations.
Improved performance of in-memory moving window test and get_window_stats operations.
Reduced load on event loop when expiring limits with async in-memory implementations
Add back emcache as a non default implementation for memcached + asyncio
Dropped support for Fixed Window with Elastic Expiry strategy
test and get_window_stats operations.test and get_window_stats operations.test and get_window_stats operations.Expose key_prefix constructor argument for all redis storage implementations to simplify customizing the prefix used for all keys created in redis (Ba
5.1.0).Expand benchmark results to included preseeded limits
Release Date: 2025-04-12
Documentation
Expand benchmark results to included preseeded limits
Bug Fix
Handle clearing missing key with memcache + async
Improve presentation of benchmark docs
Release Date: 2025-04-09
Documentation
Improve presentation of benchmark docs
Fix incorrect benchmark for async test method
Release Date: 2025-04-08
Testing
Fix incorrect benchmark for async test method
Add benchmarking results in documentation
Release Date: 2025-04-08
Documentation
Add benchmarking results in documentation
Ensure mongo clients are closed on storage destruction. Issue 264
Release Date: 2025-04-03
Bug Fix
Ensure mongo clients are closed on storage destruction. Issue 264
Fix concurrent update error when expiring moving window entries. Issue 267
Release Date: 2025-04-03
Bug Fix
Fix concurrent update error when expiring moving window entries. Issue 267
Fix deprecation documentation for etcd
Release Date: 2025-03-14
Documentation
Fix deprecation documentation for etcd
## Compatibility * Deprecate support for etcd
etcdRelease Date: 2025-03-14
Compatibility
Deprecate support for etcd
Add support for valkey:// schemas and using valkey-py dependency
valkey:// schemas and using valkey-py
dependencyRelease Date: 2025-03-14
Feature
Add support for valkey:// schemas and using valkey-py dependency
Compatibility
Drop support for python 3.9
Improve typing to use python 3.10+ features
Add support for using redis-py instead of coredis which asyncio + redis storages
Feature
redis-py instead of coredis
which asyncio + redis storagesRelease Date: 2025-03-11
Feature
Add support for using redis-py instead of coredis which asyncio + redis storages
Deprecate the Fixed window with elastic expiry strategy
Feature
Deprecation
Documentation
Release Date: 2025-03-07
Feature
Add new Sliding Window Counter strategy
Deprecation
Deprecate the Fixed window with elastic expiry strategy
Documentation
Re-write strategy documentation with concrete examples
Change pypi release to use trusted publishing
Security
Release Date: 2025-01-16
Security
Change pypi release to use trusted publishing
Change definition of reset_time in get_window_stats to use a precise floating point value instead of truncating to the previous second.
reset_time in get_window_stats
to use a precise floating point value instead of truncating
to the previous second.Release Date: 2025-01-05
Breaking change
Change definition of reset_time in get_window_stats to use a precise floating point value instead of truncating to the previous second.
Fix benchmark artifact upload/download issue during release creation
Release Date: 2024-11-30
Chore
Fix benchmark artifact upload/download issue during release creation
Allow custom collection names in mongodb storage
Release Date: 2024-11-29
Feature
Allow custom collection names in mongodb storage
Compatibility
Add support for python 3.13
Drop support for python 3.8
Deprecations
Remove fallback support to use redis-py-cluster
Add cost parameter to test methods in strategies.
cost parameter to test methods in strategies.Release Date: 2024-06-22
Feature
Add cost parameter to test methods in strategies.
Lazily initialize pymongo client
Release Date: 2024-05-12
Enhancements
Lazily initialize pymongo client
Documentation
Add django-ratelimiter in docs
Chores
Update development dependencies
Update github actions to latest
## Compatibility * Add support for python 3.12
Release Date: 2024-04-20
Compatibility
Add support for python 3.12
Relax dependency constraint on packaging
Release Date: 2024-03-17
Compatibility
Relax dependency constraint on packaging
Fix incorrect mapping of coredis exceptions
Release Date: 2024-03-08
Bug Fix
Fix incorrect mapping of coredis exceptions
Fix calculation of reset_time
Remove excessively low defaults for mongodb storage and instead delegate to the underlying dependency (pymongo, motor)
Release Date: 2024-02-17
Bug Fix
Remove excessively low defaults for mongodb storage and instead delegate to the underlying dependency (pymongo, motor)
Add option to wrap storage errors with a StorageError exception
StorageError
exceptionRelease Date: 2024-02-14
Features
Add option to wrap storage errors with a StorageError exception
Ensure rate limit keys in redis use are prefixed with a LIMITS prefix. This allows for resetting all keys generated by the library without implicit kn
LIMITS prefix. This allows for resetting
all keys generated by the library without implicit
knowledge of the key structure.Release Date: 2023-11-24
Features
Ensure rate limit keys in redis use are prefixed with a LIMITS prefix. This allows for resetting all keys generated by the library without implicit knowledge of the key structure.
Remove default socket timeout from mongo storage
git archive from a tag regardless of when it is
run.Release Date: 2023-08-31
Bug Fix
Remove default socket timeout from mongo storage
Ensure _version.py has stable content when generated using git archive from a tag regardless of when it is run.
Compatibility
Remove references to python 3.7
Remove unnecessary setuptools dependency
Handle cost > 8000 when using redis
cost > 8000 when using redisRelease Date: 2023-05-16
Bug Fix
Handle cost > 8000 when using redis
Remove arbitrary default timeout for redis+sentinel
Remove use of weakreferences to storages in strategy classes as this was not documented or required and led to usability issues.
Release Date: 2023-04-17
Bug Fix
Remove use of weakreferences to storages in strategy classes as this was not documented or required and led to usability issues.
Chores
Update documentation dependencies
Remove unused gcra lua script
Block incompatible versions of redis-py
Release Date: 2023-03-22
Compatibility
Block incompatible versions of redis-py
Chores
Force error on warnings in tests
Remove deprecated use of pkg_resources and switch to importlib_resource
pkg_resources and switch
to importlib_resourceRelease Date: 2023-03-20
Compatibility
Remove deprecated use of pkg_resources and switch to importlib_resource
Chores
Update documentation dependencies
Update github actions versions
Fix handling of authentication details in storage url of redis cluster
Release Date: 2023-01-24
Bug Fix
Fix handling of authentication details in storage url of redis cluster
Chores
Add test coverage for redis cluster with auth required
Disallow acquiring amounts > limit in moving window
RateLimiter.get_window_statsRelease Date: 2023-01-16
Bug Fix
Disallow acquiring amounts > limit in moving window
Usability
Use a named tuple for the response from RateLimiter.get_window_stats
Reduce rpc calls to etcd for counter increment
Release Date: 2023-01-12
Performance
Reduce rpc calls to etcd for counter increment
Compatibility
Relax version requirements for packaging dependency
Chores
Improve benchmark outputs
Improve documentation for etcd
Fix benchmark result artifact capture
Release Date: 2023-01-06
Chores
Fix benchmark result artifact capture
Fix benchmark result artifact capture
Release Date: 2023-01-06
Chores
Fix benchmark result artifact capture
Collapse benchmark & ci workflows
Release Date: 2023-01-06
Chores
Collapse benchmark & ci workflows
Fix compatibility tests for etcd in CI
Release Date: 2023-01-06
Chores
Fix compatibility tests for etcd in CI
Improve visual identifiers of tests
Add benchmark tests in CI
Increase minimum version of pymongo to 4.1
Release Date: 2023-01-05
Compatibility
Increase minimum version of pymongo to 4.1
Chores
Refactor storage tests
Improve test coverage across python versions in CI
Removed deprecated GAE Memcached storage
Release Date: 2023-01-04
Features
Added etcd storage support for fixed window strategies
Compatibility
Removed deprecated GAE Memcached storage
Updated minimum dependencies for mongodb
Updated dependency for async memcached on python 3.11
## Chores * Make rate limit items hashable * Update test certificates
Release Date: 2022-12-23
Chores
Make rate limit items hashable
Update test certificates
Update documentation dependencies
Release Date: 2022-12-11
Compatibility Updates
Update documentation dependencies
Relax version constraint for packaging dependency
Bump CI to use python 3.11 final
Increase pymemcached dependency range to in include 4.x
Release Date: 2022-10-20
Compatibility Updates
Increase pymemcached dependency range to in include 4.x
Add python 3.11 rc2 to CI
Update coredis requirements to include 4.x versions
coredis requirements to include 4.x versionsRelease Date: 2022-07-16
Compatibility Updates
Update coredis requirements to include 4.x versions
Remove CI / support for redis < 6.0
Remove python 3.7 from CI
Add redis 7.0 in CI
Update development dependencies
Release Date: 2022-06-05
Chores
Update development dependencies
Add CI for python 3.11
Increase test coverage for redis sentinel
Update async redis sentinel implementation to remove use of deprecated methods.
motor requirements to include 3.x versionreset method in cluster mode
when used with coredis versions >= 3.5.0Release Date: 2022-05-12
Compatibility Updates
Update motor requirements to include 3.x version
Update async redis sentinel implementation to remove use of deprecated methods.
Fix compatibility issue with asyncio redis reset method in cluster mode when used with coredis versions >= 3.5.0
Fix typing regression with strategy constructors Issue 88
Release Date: 2022-04-25
Bug Fix
Fix typing regression with strategy constructors Issue 88
Removed tests for rediscluster using the redis-py-cluster library
redis-py-cluster library__slots__ declaration in limits.RateLimitItem
and it's subclasses (Issue #121)Release Date: 2022-04-25
Deprecation
Removed tests for rediscluster using the redis-py-cluster library
Bug Fix
Fix incorrect __slots__ declaration in limits.RateLimitItem and it's subclasses (Issue #121)
Fix typing regression with strategy constructors Issue 88
Release Date: 2022-04-25
Bug Fix
Fix typing regression with strategy constructors Issue 88
## Chore * Automate Github releases
Release Date: 2022-04-22
Chore
Automate Github releases
Increase strictness of type checking and annotations
Release Date: 2022-04-17
Chore
Increase strictness of type checking and annotations
Ensure installations from source distributions are PEP-561 compliant
Your coding agent can read these notes before it upgrades. Set up the MCP server →