Files
ente/server/pkg/utils/rate_limit.go
Neeraj Gupta 65faa98621 Move to util
2025-05-10 06:27:25 +05:30

20 lines
550 B
Go

package utils
import (
"github.com/ulule/limiter/v3"
"github.com/ulule/limiter/v3/drivers/store/memory"
)
// NewRateLimiter will return instance of limiter.Limiter based on internal <limit>-<period>
// Examples: 5 reqs/sec: "5-S", 10 reqs/min: "10-M"
// 1000 reqs/hour: "1000-H", 2000 reqs/day: "2000-D"
// https://github.com/ulule/limiter/
func NewRateLimiter(interval string) *limiter.Limiter {
store := memory.NewStore()
rate, err := limiter.NewRateFromFormatted(interval)
if err != nil {
panic(err)
}
return limiter.New(store, rate)
}