Token Bucket Limiter
A simple, thread-safe Token Bucket rate limiter for Python.
Installation
pip install token-bucket-limiter
Usage
Basic Usage
from token_bucket_limiter import TokenBucket
# 10 tokens max, refill 2 tokens every 1 second
limiter = TokenBucket(max_tokens=10, refill_rate=2, interval=1.0)
if limiter.allow_request():
print("Request allowed!")
else:
print("Rate limit exceeded.")
Rate Limiter Store (Per-user/IP)
from token_bucket_limiter import RateLimiterStore
store = RateLimiterStore(max_tokens=10, refill_rate=2, interval=1.0)
# Get or create a bucket for a specific user
user_bucket = store.get_bucket("user_123")
if user_bucket.allow_request():
# Process request
pass
License
MIT
Release files for token-bucket-limiter 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| token_bucket_limiter-0.1.0.tar.gz | 4.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| token_bucket_limiter-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.8 kB
Release files / token_bucket_limiter-0.1.0.tar.gz
| Download URL | token_bucket_limiter-0.1.0.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5151795ccf5a40e10c29375080350d4a0212af232ecab8bf3632f20dc922c4ae
|
|
BLAKE2b-256 checksum How to use checksums |
c36b8bbc2ac58608102c73dea3066c80a1cacdf0a19614d9b7995ae2043b570b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / token_bucket_limiter-0.1.0-py3-none-any.whl
| Download URL | token_bucket_limiter-0.1.0-py3-none-any.whl |
|---|---|
| Size | 3.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f8bc742020f65effa76af302fc3e8b4ce5824cd815ab281abcceba1caa6d9daf
|
|
BLAKE2b-256 checksum How to use checksums |
703e69687bb8db849691793b637feaf556622912c0e1f56e7fbbbb53229008e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|