Closed
Description
Checklist
- Dependencies installed
- No typos
- Searched existing issues and docs
Issue Description
When using the RateLimiter Middleware with a rate between 0 and 1 all events will be rejected instead of applying the specified rate. E.g.: e.Use(middleware.RateLimiter(middleware.NewRateLimiterMemoryStore(0.5)))
I am not saying that it is a common use case to have a rate.Limit
between 0 and 1, but it is very confusing that NewRateLimiterMemoryStore()
accepts a value of type float, the docs don't mention any restrictions for non-zero values but still the argument is interpreted as zero instead of its actual value.
Expected behaviour
One of those:
- the docs explains how a fractional
rate.Limit
is handled NewRateLimiterMemoryStore()
only accepts integer values- the RateLimiter interprets a fractional
rate.Limit
correctly, e.g. a limit of 0.5 will result in an equivalent rate of 30 requests/minute
Actual behaviour
a fractional rate.Limit
between 0 and 1 is surprisingly interpreted like a zero Limit
Version/commit
v4.2.2