limiter

package
v0.2.6 Latest Latest
Warning

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

Go to latest
Published: Jun 12, 2026 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 = contract.Opt[ClientOptions]

func WithGroup

func WithGroup(x string) ClientOption

func WithLoaded added in v0.1.163

func WithLoaded(x Loaded) ClientOption

func WithMaxScore added in v0.1.25

func WithMaxScore(x uint) ClientOption

func WithTimeout

func WithTimeout(x time.Duration) ClientOption

func WithWindow

func WithWindow(x time.Duration) ClientOption

type ClientOptions

type ClientOptions struct {
	Loaded
	Group   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.

func (*DefaultTool) GetMaxScore added in v0.1.245

func (d *DefaultTool) GetMaxScore(ctx context.Context) (uint, error)

GetMaxScore returns the maximum allowed request score.

type Dependencies

type Dependencies struct {
	RC contract.RedisClient
}

type Loaded added in v0.1.122

type Loaded struct {
	MaxScore uint
}

type Tool added in v0.1.245

type Tool interface {
	contract.LimiterOperator
}

Jump to

Keyboard shortcuts

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