Repolode
ross

ross/requests-futures

concurrent.futures를 사용해 HTTP 요청을 비동기로 보내는 Python requests 라이브러리용 소형 애드온입니다.

스타
2,222
포크
158
열린 이슈
1
마지막 커밋
16일 전

어떤 프로젝트인가요?

requests-futures는 널리 쓰이는 Python requests 라이브러리에 비동기 인터페이스를 추가합니다. 각 호출이 끝날 때까지 기다리는 대신 FuturesSession은 Future 객체를 반환하므로 요청은 백그라운드에서 실행되고, 응답이 필요할 때 result()를 호출하면 됩니다. 그 외의 API는 requests.Session과 동일하며, 예외는 호출 시점이 아니라 result()에서 발생합니다.

기본적으로 세션은 8개의 워커를 사용하는 ThreadPoolExecutor를 사용하며, 프로세스 기반 동시 처리가 필요하면 ProcessPoolExecutor를 대신 지정할 수 있습니다. 세션을 컨텍스트 매니저로 닫으면 아직 시작되지 않은 대기 중인 요청이 취소됩니다. Future에 추가 데이터를 연결할 수 있으며, 라이브러리는 지원 중단된 background_callback을 대체하는 훅을 제공합니다.

기본 executor는 워커 스레드 간에 하나의 requests.Session을 공유합니다. Session은 스레드 안전하지 않으므로 진행 중인 요청들이 공유하는 쿠키나 헤더를 변경할 때는 주의해야 합니다. Python 3.10 이상이 필요합니다.

핵심 기능

  • 01익숙한 requests.Session API에서 Future 객체를 반환합니다.
  • 02기본적으로 8개의 워커를 사용하는 ThreadPoolExecutor를 사용하며, ProcessPoolExecutor도 지원합니다.
  • 03세션이 닫힐 때 아직 시작되지 않은 대기 중인 요청을 취소합니다.
  • 04요청을 식별하고 추적할 수 있도록 Future에 사용자 지정 데이터를 연결할 수 있습니다.
  • 05지원 중단된 background_callback을 대체하는 훅을 지원합니다.

활용 사례

  • Python 스크립트에서 서로 독립적인 여러 URL을 병렬로 가져오기.
  • 기존 requests 기반 코드베이스를 최소한으로 수정해 백그라운드 HTTP 호출 추가하기.
  • 요청별 메모리 사용량 때문에 프로세스 풀이 적합한 대량 요청 처리하기.

빠른 시작

  1. 1

    pip으로 패키지를 설치합니다

    pip install requests-futures
  2. 2

    FuturesSession을 만들고 요청을 보낸 다음, 각 future에서 result()를 호출해 응답을 가져옵니다

사용 전 알아둘 점

  • Python 3.10 이상이 필요합니다.
  • 기본 executor는 스레드 안전하지 않은 requests.Session 하나를 여러 스레드에서 공유합니다.
  • 프로젝트 메타데이터에 라이선스가 명확하게 지정되어 있지 않습니다.

토픽

자주 묻는 질문

requests-futures은(는) 무엇인가요?
concurrent.futures를 사용해 HTTP 요청을 비동기로 보내는 Python requests 라이브러리용 소형 애드온입니다. requests-futures는 널리 쓰이는 Python requests 라이브러리에 비동기 인터페이스를 추가합니다. 각 호출이 끝날 때까지 기다리는 대신 FuturesSession은 Future 객체를 반환하므로 요청은 백그라운드에서 실행되고, 응답이 필요할 때 result()를 호출하면 됩니다. 그 외의 API는 requests.Session과 동일하며, 예외는 호출 시점이 아니라 result()에서 발생합니다.
requests-futures은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
requests-futures은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
requests-futures은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. requests-futures의 마지막 커밋은 2026년 10월 5일입니다.
requests-futures은(는) 어디에 사용할 수 있나요?
Python 스크립트에서 서로 독립적인 여러 URL을 병렬로 가져오기. 기존 requests 기반 코드베이스를 최소한으로 수정해 백그라운드 HTTP 호출 추가하기. 요청별 메모리 사용량 때문에 프로세스 풀이 적합한 대량 요청 처리하기.
requests-futures는 어떻게 설치하나요?
pip으로 패키지를 설치합니다: pip install requests-futures FuturesSession을 만들고 요청을 보낸 다음, 각 future에서 result()를 호출해 응답을 가져옵니다
requests-futures은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/ross/requests-futures

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트