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 func(*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(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
Engage applies rate limiting to incoming HTTP requests.
type Dependencies ¶
type Dependencies struct {
RM *contract.RegistryMutex
R contract.Registry
SO contract.SemaphoreOperator
RS contract.HTTPResponder
RC contract.RedisClient
}
Click to show internal directories.
Click to hide internal directories.