ratelimit

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Sep 24, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	RequestsPerSecond float64 `json:"requests_per_second" yaml:"requests_per_second"`
	Burst             int     `json:"burst" yaml:"burst"`
	MaxConcurrent     int     `json:"max_concurrent" yaml:"max_concurrent"`
}

Config applies to all callers of one configured endpoint. Zero disables the corresponding limit. A positive rate with burst zero uses a capacity of one.

func (Config) Validate

func (c Config) Validate() error

type Registry

type Registry struct {
	// contains filtered or unexported fields
}

Registry survives runtime replacement. Configuration changes preserve tokens and active requests; database transactions do not sit on the request path.

func (*Registry) Acquire

func (r *Registry) Acquire(ids []string) (release func(), rejection *Rejection)

Acquire rejects immediately, without queueing or consuming another endpoint's allowance on rejection. The returned release must run when the response ends.

func (*Registry) Configure

func (r *Registry) Configure(policies map[string]Config)

type Rejection

type Rejection struct {
	Endpoint   string `json:"endpoint"`
	Reason     string `json:"reason"`
	RetryAfter int    `json:"retry_after_seconds"`
}

Jump to

Keyboard shortcuts

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