Repolode
ross

ross/requests-futures

Um complemento leve para a biblioteca requests do Python que envia requisições HTTP de forma assíncrona usando concurrent.futures.

Estrelas
2,222
Forks
158
Issues abertas
1
Último commit
há 16 dias

O que é?

requests-futures adiciona uma interface assíncrona à popular biblioteca requests do Python. Em vez de bloquear a execução a cada chamada, FuturesSession retorna objetos Future, permitindo que as requisições sejam executadas em segundo plano; você chama result() quando precisar da resposta. A API é igual à de requests.Session nos demais aspectos, mas as exceções são lançadas por result(), e não no momento da chamada.

Por padrão, a sessão usa um ThreadPoolExecutor com 8 workers. Também é possível fornecer um ProcessPoolExecutor para usar concorrência baseada em processos. Ao fechar a sessão como gerenciador de contexto, as requisições enfileiradas que ainda não começaram são canceladas. É possível anexar dados extras aos futures, e a biblioteca oferece hooks como substitutos do background_callback, que foi descontinuado.

O executor padrão compartilha uma única requests.Session entre as threads de trabalho. Como Session não é thread-safe, é preciso ter cuidado ao alterar cookies ou headers compartilhados enquanto há requisições em andamento. Requer Python 3.10 ou mais recente.

Recursos principais

  • 01Retorna objetos Future pela conhecida API de requests.Session.
  • 02Usa por padrão um ThreadPoolExecutor com 8 workers e também oferece suporte a ProcessPoolExecutor.
  • 03Cancela as requisições enfileiradas que ainda não começaram quando a sessão é fechada.
  • 04Permite anexar dados personalizados aos futures para identificar cada requisição.
  • 05Oferece suporte a hooks como substitutos do background_callback, que foi descontinuado.

Casos de uso

  • Buscar várias URLs independentes em paralelo a partir de um script Python.
  • Adicionar chamadas HTTP em segundo plano a uma base de código existente que usa requests, com o mínimo de alterações.
  • Executar grandes lotes de requisições quando o uso de memória por requisição justifica o uso de um pool de processos.

Início rápido

  1. 1

    Instale o pacote com pip

    pip install requests-futures
  2. 2

    Crie uma FuturesSession e envie solicitações; chame result() em cada future para obter a resposta

Antes de usar

  • Requer Python 3.10 ou mais recente.
  • O executor padrão compartilha uma única requests.Session entre threads, e ela não é segura para uso entre threads.
  • A licença não está especificada claramente nos metadados do projeto.

Tópicos

Perguntas frequentes

O que é requests-futures?
Um complemento leve para a biblioteca requests do Python que envia requisições HTTP de forma assíncrona usando concurrent.futures. requests-futures adiciona uma interface assíncrona à popular biblioteca requests do Python. Em vez de bloquear a execução a cada chamada, FuturesSession retorna objetos Future, permitindo que as requisições sejam executadas em segundo plano; você chama result() quando precisar da resposta. A API é igual à de requests.Session nos demais aspectos, mas as exceções são lançadas por result(), e não no momento da chamada.
requests-futures é gratuito? Qual é a licença?
requests-futures é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
requests-futures ainda é mantido?
Manutenção ativa. O último commit de requests-futures foi em 5 de out. de 2026.
Para que posso usar requests-futures?
Buscar várias URLs independentes em paralelo a partir de um script Python. Adicionar chamadas HTTP em segundo plano a uma base de código existente que usa requests, com o mínimo de alterações. Executar grandes lotes de requisições quando o uso de memória por requisição justifica o uso de um pool de processos.
Como instalar requests-futures?
Instale o pacote com pip: pip install requests-futures Crie uma FuturesSession e envie solicitações; chame result() em cada future para obter a resposta
Onde consigo requests-futures?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ross/requests-futures

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados