Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrLimited = errors.New("rate limit exceeded")
ErrLimited is returned in the request path when the rate limiter is triggered and the request is rejected.
Functions ¶
func NewDelayingLimiter ¶ added in v0.6.0
func NewDelayingLimiter(limit Waiter) endpoint.Middleware
NewDelayingLimiter returns an endpoint.Middleware that acts as a request throttler. Requests that would exceed the maximum request rate are delayed via the Waiter function
func NewErroringLimiter ¶ added in v0.6.0
func NewErroringLimiter(limit Allower) endpoint.Middleware
NewErroringLimiter returns an endpoint.Middleware that acts as a rate limiter. Requests that would exceed the maximum request rate are simply rejected with an error.
Types ¶
type Allower ¶ added in v0.6.0
type Allower interface {
Allow() bool
}
Allower dictates whether or not a request is acceptable to run. The Limiter from "golang.org/x/time/rate" already implements this interface, one is able to use that in NewErroringLimiter without any modifications.
type AllowerFunc ¶ added in v0.6.0
type AllowerFunc func() bool
AllowerFunc is an adapter that lets a function operate as if it implements Allower
func (AllowerFunc) Allow ¶ added in v0.6.0
func (f AllowerFunc) Allow() bool
Allow makes the adapter implement Allower