ratelimit

package
v0.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 29, 2023 License: MIT Imports: 3 Imported by: 535

Documentation

Index

Constants

This section is empty.

Variables

View Source
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

type Waiter added in v0.6.0

type Waiter interface {
	Wait(ctx context.Context) error
}

Waiter dictates how long a request must be delayed. The Limiter from "golang.org/x/time/rate" already implements this interface, one is able to use that in NewDelayingLimiter without any modifications.

type WaiterFunc added in v0.6.0

type WaiterFunc func(ctx context.Context) error

WaiterFunc is an adapter that lets a function operate as if it implements Waiter

func (WaiterFunc) Wait added in v0.6.0

func (f WaiterFunc) Wait(ctx context.Context) error

Wait makes the adapter implement Waiter

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL