Repolode
ross

ross/requests-futures

Un complemento pequeño para la biblioteca requests de Python que envía solicitudes HTTP de forma asíncrona con concurrent.futures.

Estrellas
2,222
Forks
158
Issues abiertos
1
Último commit
hace 16 días

¿Qué es?

requests-futures añade una interfaz asíncrona a la popular biblioteca requests de Python. En lugar de esperar a que termine cada llamada, FuturesSession devuelve objetos Future, de modo que las solicitudes se ejecutan en segundo plano y puedes llamar a result() cuando necesites la respuesta. Por lo demás, la API coincide con requests.Session; las excepciones se lanzan desde result() y no en el momento de la llamada.

De forma predeterminada, la sesión usa un ThreadPoolExecutor con 8 workers, aunque también se puede proporcionar un ProcessPoolExecutor para usar concurrencia basada en procesos. Al cerrar la sesión como administrador de contexto, se cancelan las solicitudes en cola que aún no hayan empezado. Puedes adjuntar datos adicionales a los futures, y la biblioteca ofrece hooks como reemplazo de background_callback, que está obsoleto.

El executor predeterminado comparte un requests.Session entre los threads de trabajo, y Session no es thread-safe, así que hay que tener cuidado al modificar cookies o headers compartidos mientras hay solicitudes en curso. Requiere Python 3.10 o posterior.

Funciones clave

  • 01Devuelve objetos Future desde la conocida API de requests.Session.
  • 02Usa de forma predeterminada un ThreadPoolExecutor con 8 workers y admite ProcessPoolExecutor.
  • 03Cancela las solicitudes en cola que aún no hayan empezado cuando se cierra la sesión.
  • 04Permite adjuntar datos personalizados a los futures para identificar cada solicitud.
  • 05Admite hooks como reemplazo de background_callback, que está obsoleto.

Casos de uso

  • Obtener en paralelo muchas URL independientes desde un script de Python.
  • Añadir llamadas HTTP en segundo plano a una base de código existente que use requests con cambios mínimos.
  • Ejecutar grandes lotes de solicitudes cuando el uso de memoria por solicitud hace conveniente usar un pool de procesos.

Inicio rápido

  1. 1

    Instala el paquete con pip

    pip install requests-futures
  2. 2

    Crea una FuturesSession y envía solicitudes; llama a result() en cada future para obtener la respuesta

Antes de usarlo

  • Requiere Python 3.10 o posterior.
  • El executor predeterminado comparte una única requests.Session entre hilos, y no es segura para usarse entre hilos.
  • La licencia no está especificada claramente en los metadatos del proyecto.

Temas

Preguntas frecuentes

¿Qué es requests-futures?
Un complemento pequeño para la biblioteca requests de Python que envía solicitudes HTTP de forma asíncrona con concurrent.futures. requests-futures añade una interfaz asíncrona a la popular biblioteca requests de Python. En lugar de esperar a que termine cada llamada, FuturesSession devuelve objetos Future, de modo que las solicitudes se ejecutan en segundo plano y puedes llamar a result() cuando necesites la respuesta. Por lo demás, la API coincide con requests.Session; las excepciones se lanzan desde result() y no en el momento de la llamada.
¿requests-futures es gratuito? ¿Qué licencia tiene?
requests-futures es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿requests-futures sigue mantenido?
Mantenimiento activo. El último commit de requests-futures fue el 5 oct 2026.
¿Para qué puedo usar requests-futures?
Obtener en paralelo muchas URL independientes desde un script de Python. Añadir llamadas HTTP en segundo plano a una base de código existente que use requests con cambios mínimos. Ejecutar grandes lotes de solicitudes cuando el uso de memoria por solicitud hace conveniente usar un pool de procesos.
¿Cómo se instala requests-futures?
Instala el paquete con pip: pip install requests-futures Crea una FuturesSession y envía solicitudes; llama a result() en cada future para obtener la respuesta
¿Dónde consigo requests-futures?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/ross/requests-futures

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados