Repolode
ZhuoZhuoCrayon

ZhuoZhuoCrayon/throttled-py

Redis 또는 메모리 저장소를 사용하는 Fixed Window, Sliding Window, Token Bucket, Leaky Bucket, GCRA 알고리즘 기반 Python 속도 제한 라이브러리입니다.

스타
649
포크
36
열린 이슈
10
마지막 커밋
4일 전

어떤 프로젝트인가요?

throttled-py는 함수 호출과 API 요청의 속도를 제한하는 Python 라이브러리입니다. 다섯 가지 알고리즘(Fixed Window, Sliding Window, Token Bucket, Leaky Bucket, GCRA)을 지원하며 `using` 매개변수로 선택할 수 있습니다. 할당량은 "100/s burst 200"처럼 읽기 쉬운 문자열로 지정할 수 있습니다.

동기 및 비동기 API를 모두 제공하며, 일반 함수 호출, 데코레이터, 컨텍스트 매니저 방식으로 사용할 수 있습니다. 카운터는 만료 기능이 있는 메모리 내 LRU 저장소나 독립 실행형, Sentinel, Cluster 모드의 Redis에 저장됩니다. 호출은 즉시 반환하거나 타임아웃까지 대기하며 재시도하도록 설정할 수 있습니다.

FastAPI와 Flask용 공식 통합 기능을 제공하며, 데코레이터 기반 제한과 RateLimit-* 응답 헤더, HTTP 429 처리를 지원합니다. OpenTelemetry 훅 옵션과 MCP Python SDK 통합 기능도 제공합니다.

핵심 기능

  • 01다섯 가지 속도 제한 알고리즘: Fixed Window, Sliding Window, Token Bucket, Leaky Bucket, GCRA.
  • 02함수 호출, 데코레이터, 컨텍스트 매니저 방식으로 사용할 수 있는 동기 및 비동기 API.
  • 03독립 실행형, Sentinel, Cluster 모드의 Redis 저장소와 만료 및 LRU 제거 기능을 갖춘 메모리 내 저장소.
  • 04타임아웃을 설정할 수 있는 대기 및 재시도 모드.
  • 05HTTP 429 처리를 지원하는 FastAPI 및 Flask 공식 통합 기능.

활용 사례

  • 요청 할당량을 적용하는 서드파티 API로 나가는 호출 제한.
  • FastAPI 또는 Flask 서비스에서 사용자나 IP별 요청 제한.
  • Redis를 통해 여러 애플리케이션 인스턴스 간 속도 제한 상태 공유.
  • 비동기 Python 워커에서 요청 급증 제어.

빠른 시작

  1. 1

    PyPI에서 패키지를 설치합니다

    pip install throttled-py
  2. 2

    Quick Start 예시와 같이 Throttled 인스턴스를 만들고 코드에서 limit()을 호출합니다

사용 전 알아둘 점

  • 현재 v3.x 계열은 Python 3.10 이상이 필요합니다. Python 3.8 및 3.9에서는 throttled-py<3.0.0을 사용해야 합니다.
  • Redis 백엔드를 사용하려면 선택 사항인 redis extra와 실행 중인 Redis 서버가 필요합니다.

토픽

자주 묻는 질문

throttled-py은(는) 무엇인가요?
Redis 또는 메모리 저장소를 사용하는 Fixed Window, Sliding Window, Token Bucket, Leaky Bucket, GCRA 알고리즘 기반 Python 속도 제한 라이브러리입니다. throttled-py는 함수 호출과 API 요청의 속도를 제한하는 Python 라이브러리입니다. 다섯 가지 알고리즘(Fixed Window, Sliding Window, Token Bucket, Leaky Bucket, GCRA)을 지원하며 `using` 매개변수로 선택할 수 있습니다. 할당량은 "100/s burst 200"처럼 읽기 쉬운 문자열로 지정할 수 있습니다.
throttled-py은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
throttled-py은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
throttled-py은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. throttled-py의 마지막 커밋은 2026년 10월 18일입니다.
throttled-py은(는) 어디에 사용할 수 있나요?
요청 할당량을 적용하는 서드파티 API로 나가는 호출 제한. FastAPI 또는 Flask 서비스에서 사용자나 IP별 요청 제한. Redis를 통해 여러 애플리케이션 인스턴스 간 속도 제한 상태 공유. 비동기 Python 워커에서 요청 급증 제어.
throttled-py는 어떻게 설치하나요?
PyPI에서 패키지를 설치합니다: pip install throttled-py Quick Start 예시와 같이 Throttled 인스턴스를 만들고 코드에서 limit()을 호출합니다
throttled-py은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/ZhuoZhuoCrayon/throttled-py

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

관련 프로젝트