Об этом проекте
Rate — это библиотека ограничения скорости, написанная на Go и предназначенная для управления трафиком запросов в приложениях на Go. Согласно её README, она делает акцент на производительности и предлагает несколько выбираемых стратегий ограничения.
Ключевые моменты из документации:
- Установка выполняется через `go get github.com/Mahu123-Locked/rate`.
- Базовый API создаёт ограничитель с частотой и размером burst, например `rate.NewLimiter(1, 5)` для одного запроса в секунду с burst, равным пяти, а запросы проверяются с помощью `limiter.Allow()`.
- Описаны четыре стратегии: token bucket (допускает всплески, поддерживая среднюю частоту), leaky bucket (сглаживает всплески до постоянной частоты), fixed window (ограничивает запросы в пределах фиксированного временного окна) и sliding window (подсчитывает запросы по перекрывающимся окнам для более точного контроля).
- README включает примеры программ для общего ограничителя, token bucket (`rate.NewTokenBucket`) и leaky bucket (`rate.NewLeakyBucket`).
- Проект распространяется под лицензией MIT и принимает вклад через форки и pull request'ы.
В README не документированы бенчмарки, гарантии потокобезопасности, распределённое ограничение на базе Redis или параметры конфигурации помимо аргументов конструктора, показанных в примерах.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.