표준 타입 힌트로 API를 구축하고 자동 검증, OpenAPI 문서, 높은 성능을 제공하는 Python 웹 프레임워크입니다.
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
PyPI에서 패키지를 설치합니다
pip install throttled-py - 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 통계는 매일 갱신됩니다.
관련 프로젝트
Redis와 Memcached API를 호환하며 두 시스템을 대체해 바로 사용할 수 있도록 설계된 인메모리 데이터 저장소입니다.
스타트업에서 쌓은 경험을 바탕으로 프로덕션 FastAPI 애플리케이션을 만들 때 적용할 명확한 모범 사례와 규칙을 소개합니다.
Python에서 비동기 웹 서비스와 API를 구축하기 위한 경량 ASGI 프레임워크 및 툴킷입니다.
Python용 분산 작업 큐로, 백그라운드 작업을 실행하고 워커와 메시지 브로커에 작업을 분배합니다.
로컬에서 실행되며 제어권과 개인정보 보호를 우선하는 오픈소스 홈 자동화 플랫폼으로, Raspberry Pi나 로컬 서버에서 자주 사용됩니다.