Framework web Python para criar APIs com type hints padrão, validação automática, documentação OpenAPI e alto desempenho.
ZhuoZhuoCrayon/throttled-py
Biblioteca Python de rate limiting com algoritmos Fixed Window, Sliding Window, Token Bucket, Leaky Bucket e GCRA, usando armazenamento em Redis ou em memória.
- Estrelas
- 649
- Forks
- 36
- Issues abertas
- 10
- Último commit
- há 4 dias
O que é?
throttled-py é uma biblioteca Python para limitar chamadas de funções e requisições de API. Ela oferece cinco algoritmos (Fixed Window, Sliding Window, Token Bucket, Leaky Bucket e GCRA), selecionados pelo parâmetro `using`, e permite definir cotas com strings legíveis, como "100/s burst 200".
A biblioteca oferece APIs síncronas e assíncronas, e pode ser usada com chamadas de função simples, decorators ou context managers. Os contadores ficam em um armazenamento LRU em memória com expiração ou no Redis, nos modos standalone, Sentinel ou Cluster. As chamadas podem retornar imediatamente ou aguardar e tentar novamente até atingir um timeout.
A biblioteca inclui integrações oficiais com FastAPI e Flask, que adicionam limites configurados por decorators, cabeçalhos de resposta RateLimit-* e tratamento de HTTP 429. Também oferece uma opção de hook para OpenTelemetry e integração com o MCP Python SDK.
Recursos principais
- 01Cinco algoritmos de rate limiting: Fixed Window, Sliding Window, Token Bucket, Leaky Bucket e GCRA.
- 02APIs síncronas e assíncronas, com uso por chamadas de função, decorators e context managers.
- 03Armazenamento em Redis nos modos standalone, Sentinel e Cluster, além de armazenamento em memória com expiração e remoção LRU.
- 04Modo de espera e nova tentativa com timeout configurável.
- 05Integrações oficiais com FastAPI e Flask, com tratamento de HTTP 429.
Casos de uso
- Limitar chamadas de saída para uma API de terceiros que impõe cotas de requisições.
- Limitar requisições por usuário ou IP em um serviço FastAPI ou Flask.
- Compartilhar o estado dos limites de requisições entre várias instâncias da aplicação usando Redis.
- Controlar picos de requisições em workers Python assíncronos.
Início rápido
- 1
Instale o pacote pelo PyPI
pip install throttled-py - 2
Crie uma instância de Throttled e chame limit() no seu código, conforme mostrado no exemplo Quick Start
Antes de usar
- A linha v3.x atual requer Python 3.10 ou mais recente; para Python 3.8 e 3.9, é necessário usar throttled-py<3.0.0.
- O backend Redis requer o extra opcional redis e um servidor Redis em execução.
Tópicos
Perguntas frequentes
- O que é throttled-py?
- Biblioteca Python de rate limiting com algoritmos Fixed Window, Sliding Window, Token Bucket, Leaky Bucket e GCRA, usando armazenamento em Redis ou em memória. throttled-py é uma biblioteca Python para limitar chamadas de funções e requisições de API. Ela oferece cinco algoritmos (Fixed Window, Sliding Window, Token Bucket, Leaky Bucket e GCRA), selecionados pelo parâmetro `using`, e permite definir cotas com strings legíveis, como "100/s burst 200".
- throttled-py é gratuito? Qual é a licença?
- throttled-py é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- throttled-py ainda é mantido?
- Manutenção ativa. O último commit de throttled-py foi em 18 de out. de 2026.
- Para que posso usar throttled-py?
- Limitar chamadas de saída para uma API de terceiros que impõe cotas de requisições. Limitar requisições por usuário ou IP em um serviço FastAPI ou Flask. Compartilhar o estado dos limites de requisições entre várias instâncias da aplicação usando Redis. Controlar picos de requisições em workers Python assíncronos.
- Como instalar throttled-py?
- Instale o pacote pelo PyPI: pip install throttled-py Crie uma instância de Throttled e chame limit() no seu código, conforme mostrado no exemplo Quick Start
- Onde consigo throttled-py?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ZhuoZhuoCrayon/throttled-py
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um armazenamento de dados em memória compatível com as APIs do Redis e do Memcached, criado para substituir ambos sem mudanças nas aplicações.
Boas práticas e convenções opinativas para criar aplicações FastAPI prontas para produção, com base na experiência em startups.
Um framework ASGI leve e um toolkit para criar serviços web assíncronos e APIs em Python.
Fila de tarefas distribuída para Python que executa tarefas em segundo plano e distribui o trabalho entre workers e brokers de mensagens.
Plataforma open source de automação residencial que roda localmente e prioriza controle e privacidade, geralmente em um Raspberry Pi ou servidor local.