memorylimiter

package
v0.12.5 Latest Latest
Warning

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

Go to latest
Published: Jun 6, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Limit

type Limit struct {
	Limit    int
	Window   time.Duration
	Cooldown time.Duration
}

Limit defines window and max count for a bucket.

type Limiter

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

Limiter is an in-memory sliding-window rate limiter. It is intended as a single-node fallback when Redis is unavailable.

func New

func New(limits map[string]Limit) *Limiter

New constructs a new in-memory limiter with the provided per-bucket limits.

func (*Limiter) AllowNamed

func (l *Limiter) AllowNamed(bucket, key string) (bool, error)

AllowNamed matches the auth adapter's RateLimiter interface. It uses a simple sliding window over the configured duration, pruning expired entries on each call and removing empty buckets to avoid unbounded memory growth.

func (*Limiter) AllowNamedResult added in v0.9.4

func (l *Limiter) AllowNamedResult(bucket, key string) (ratelimit.Result, error)

func (*Limiter) AllowNamedWithRetryAfter added in v0.9.1

func (l *Limiter) AllowNamedWithRetryAfter(bucket, key string) (bool, time.Duration, error)

Jump to

Keyboard shortcuts

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