limiter

package
v0.1.113 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2025 License: Apache-2.0 Imports: 13 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Blackbox

type Blackbox interface {
	// contains filtered or unexported methods
}

type Client

type Client interface {
	Blackbox
	contract.LimiterOperator
}

func NewClient

func NewClient(d Dependencies, opts ClientOptions) (Client, error)

type ClientOption

type ClientOption func(*ClientOptions)

func WithGroup

func WithGroup(x string) ClientOption

func WithMaxScore added in v0.1.25

func WithMaxScore(x uint) ClientOption

func WithTimeout

func WithTimeout(x time.Duration) ClientOption

func WithUserIDHeaderKey

func WithUserIDHeaderKey(x string) ClientOption

func WithWindow

func WithWindow(x time.Duration) ClientOption

type ClientOptions

type ClientOptions struct {
	MaxScore        uint
	Group           string
	UserIDHeaderKey *string
	Timeout         time.Duration
	Window          time.Duration
}

func ApplyClientOptions

func ApplyClientOptions(opts *ClientOptions, modifiers ...ClientOption) ClientOptions

type DefaultTool added in v0.1.24

type DefaultTool struct {
	T *contract.Tool[Client]
}

func NewTool

func NewTool(c Client, opts contract.ToolOptions[Client]) *DefaultTool

func (*DefaultTool) Engage added in v0.1.24

Engage applies rate limiting to incoming HTTP requests.

Jump to

Keyboard shortcuts

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