프로젝트 소개

Rate는 Go로 작성된 속도 제한(rate limiting) 라이브러리로, Go 애플리케이션이 요청 트래픽을 제어하는 데 사용하도록 설계되었다. README에 따르면 성능을 중시하며 여러 선택 가능한 제한 전략을 제공한다. 문서의 주요 내용은 다음과 같다. - 설치는 `go get github.com/Mahu123-Locked/rate`로 수행한다. - 기본 API는 속도와 버스트 크기로 리미터를 생성한다. 예를 들어 `rate.NewLimiter(1, 5)`는 초당 1개 요청, 버스트 5개를 허용하는 설정이며, 요청 확인은 `limiter.Allow()`로 한다. - 네 가지 전략이 설명되어 있다. 토큰 버킷(token bucket)은 평균 속도를 유지하면서 버스트를 허용하고, 리키 버킷(leaky bucket)은 버스트를 일정한 속도로 부드럽게 만든다. 고정 윈도우(fixed window)는 정해진 시간 창 안에서 요청 수를 제한하며, 슬라이딩 윈도우(sliding window)는 겹치는 창 전체에서 요청을 세어 더 세밀한 제어를 제공한다. - README에는 일반 리미터, 토큰 버킷(`rate.NewTokenBucket`), 리키 버킷(`rate.NewLeakyBucket`)에 대한 예제 프로그램이 포함되어 있다. - 이 프로젝트는 MIT 라이선스이며, 포크와 풀 리퀘스트를 통한 기여를 받는다. README에는 벤치마크, 스레드 안전성 보장, 분산 또는 Redis 기반 제한, 생성자 인자 외의 추가 설정 옵션에 대한 내용은 문서화되어 있지 않다.