No description
- Go 85.1%
- Makefile 11.3%
- Dockerfile 3.6%
* chore(deps): bump actions/setup-go to v7 Self-hosted CI workflows. * ci: setup-go v7 + cache false |
||
|---|---|---|
| .github | ||
| cmd/module | ||
| deploy | ||
| internal | ||
| test | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .golangci.yml | ||
| CHANGELOG.md | ||
| COMPATIBILITY.md | ||
| CONTRIBUTING.md | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| Makefile | ||
| muxcore.json | ||
| README.md | ||
| SECURITY.md | ||
Rate Limit Token Bucket
Per-key token bucket rate limiter.
A MuxCore sidecar module that enforces per-key token-bucket limits via gRPC (Allow / Enabled). Provides the ratelimit / ratelimit.tokenbucket capability.
How It Works
Caller ──→ Allow(key) ──→ ratelimit-tokenbucket ──→ allow / deny
Each key gets its own bucket. Limiting is off until RATELIMIT_ENABLED is set.
Configuration
| Variable | Default | Description |
|---|---|---|
RATELIMIT_RATE |
100 |
Tokens replenished per second |
RATELIMIT_BURST |
200 |
Maximum bucket size |
RATELIMIT_ENABLED |
false |
Enable limiting (true / 1) |
Default gRPC listen address (code default, no env): :9800.
Quick Start
make build
export RATELIMIT_ENABLED=true
./ratelimit-tokenbucket --muxcore-mesh-addr localhost:9090
Capability
ratelimit — Per-key token bucket rate limiter
License
GPL-3.0