Un framework web de Python para crear APIs con anotaciones de tipos estándar, validación automática, documentación OpenAPI y alto rendimiento.
ZhuoZhuoCrayon/throttled-py
Biblioteca de Python para limitar la frecuencia con algoritmos Fixed Window, Sliding Window, Token Bucket, Leaky Bucket y GCRA, con almacenamiento en Redis o en memoria.
- Estrellas
- 649
- Forks
- 36
- Issues abiertos
- 10
- Último commit
- hace 4 días
¿Qué es?
throttled-py es una biblioteca de Python para limitar la frecuencia de llamadas a funciones y solicitudes a API. Admite cinco algoritmos (Fixed Window, Sliding Window, Token Bucket, Leaky Bucket y GCRA), que se pueden seleccionar mediante el parámetro `using`; las cuotas se pueden expresar con cadenas legibles como "100/s burst 200".
La biblioteca ofrece API síncronas y asíncronas, y permite hacer llamadas directas a funciones, usar decoradores o administradores de contexto. Los contadores se guardan en un almacenamiento LRU en memoria con expiración, o en Redis en modo standalone, Sentinel o Cluster. Las llamadas pueden devolver el resultado de inmediato o esperar y reintentar hasta que se alcance un timeout.
Incluye integraciones oficiales para FastAPI y Flask que añaden límites mediante decoradores, encabezados de respuesta RateLimit-* y gestión de respuestas HTTP 429. También ofrece una opción de hook para OpenTelemetry y se integra con el SDK de MCP para Python.
Funciones clave
- 01Cinco algoritmos para limitar la frecuencia: Fixed Window, Sliding Window, Token Bucket, Leaky Bucket y GCRA.
- 02API síncronas y asíncronas con llamadas a funciones, decoradores y administradores de contexto.
- 03Almacenamiento en Redis en modos standalone, Sentinel y Cluster, además de almacenamiento en memoria con expiración y expulsión LRU.
- 04Modo de espera y reintento con timeout configurable.
- 05Integraciones oficiales para FastAPI y Flask con gestión de respuestas HTTP 429.
Casos de uso
- Limitar las llamadas salientes a una API de terceros que impone cuotas de solicitudes.
- Limitar las solicitudes por usuario o IP en un servicio FastAPI o Flask.
- Compartir el estado de los límites de frecuencia entre varias instancias de una aplicación mediante Redis.
- Controlar los picos de solicitudes en workers asíncronos de Python.
Inicio rápido
- 1
Instala el paquete desde PyPI
pip install throttled-py - 2
Crea una instancia de Throttled y llama a limit() en tu código, como se muestra en el ejemplo de Quick Start
Antes de usarlo
- La línea v3.x actual requiere Python 3.10 o posterior; para Python 3.8 y 3.9, necesitas throttled-py<3.0.0.
- El backend de Redis requiere el extra opcional redis y un servidor Redis en ejecución.
Temas
Preguntas frecuentes
- ¿Qué es throttled-py?
- Biblioteca de Python para limitar la frecuencia con algoritmos Fixed Window, Sliding Window, Token Bucket, Leaky Bucket y GCRA, con almacenamiento en Redis o en memoria. throttled-py es una biblioteca de Python para limitar la frecuencia de llamadas a funciones y solicitudes a API. Admite cinco algoritmos (Fixed Window, Sliding Window, Token Bucket, Leaky Bucket y GCRA), que se pueden seleccionar mediante el parámetro `using`; las cuotas se pueden expresar con cadenas legibles como "100/s burst 200".
- ¿throttled-py es gratuito? ¿Qué licencia tiene?
- throttled-py es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿throttled-py sigue mantenido?
- Mantenimiento activo. El último commit de throttled-py fue el 18 oct 2026.
- ¿Para qué puedo usar throttled-py?
- Limitar las llamadas salientes a una API de terceros que impone cuotas de solicitudes. Limitar las solicitudes por usuario o IP en un servicio FastAPI o Flask. Compartir el estado de los límites de frecuencia entre varias instancias de una aplicación mediante Redis. Controlar los picos de solicitudes en workers asíncronos de Python.
- ¿Cómo se instala throttled-py?
- Instala el paquete desde PyPI: pip install throttled-py Crea una instancia de Throttled y llama a limit() en tu código, como se muestra en el ejemplo de Quick Start
- ¿Dónde consigo throttled-py?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/ZhuoZhuoCrayon/throttled-py
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Almacén de datos en memoria compatible con las API de Redis y Memcached, pensado para reemplazar ambos sin cambios.
Buenas prácticas y convenciones con criterios definidos para crear aplicaciones FastAPI listas para producción, basadas en la experiencia en startups.
Un framework y toolkit ASGI ligero para crear servicios web asíncronos y APIs en Python.
Cola de tareas distribuida para Python que ejecuta trabajos en segundo plano y programa tareas entre workers y brokers de mensajes.
Plataforma de domótica de código abierto que funciona localmente y prioriza el control y la privacidad, a menudo en una Raspberry Pi o un servidor local.