Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
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 WithUserIDHeaderKey ¶
func WithUserIDHeaderKey(x string) ClientOption
func WithWindow ¶
func WithWindow(x time.Duration) ClientOption
type ClientOptions ¶
func ApplyClientOptions ¶
func ApplyClientOptions(opts *ClientOptions, modifiers ...ClientOption) ClientOptions
type DefaultTool ¶ added in v0.1.24
func NewTool ¶
func NewTool(c Client, opts contract.ToolOptions[Client]) *DefaultTool
func (*DefaultTool) Engage ¶ added in v0.1.24
func (d *DefaultTool) Engage(next contract.HandlerFunc) contract.HandlerFunc
Engage applies rate limiting to incoming HTTP requests.
func (*DefaultTool) GetHeaderKey ¶ added in v0.1.245
func (d *DefaultTool) GetHeaderKey(ctx context.Context) (string, error)
GetHeaderKey returns the configured header key for identifying users.
func (*DefaultTool) GetMaxScore ¶ added in v0.1.245
func (d *DefaultTool) GetMaxScore(ctx context.Context) (uint, error)
GetMaxScore returns the maximum allowed request score.
func (*DefaultTool) GetRateLimitingMode ¶ added in v0.1.245
func (d *DefaultTool) GetRateLimitingMode(ctx context.Context) (string, error)
GetRateLimitingMode returns the active rate limiting mode (IP-based or header-based).
type Dependencies ¶
type Dependencies struct {
RM *contract.RegistryMutex
R contract.Registry
SO contract.SemaphoreOperator
RS contract.HTTPResponder
RC contract.RedisClient
}
type Tool ¶ added in v0.1.245
type Tool interface {
contract.LimiterOperator
}
Click to show internal directories.
Click to hide internal directories.