Limitador is a generic rate-limiter written in Rust. It can be used as a library, or as a service. The service exposes HTTP endpoints to apply and observe limits. Limitador can be used with Envoy because it also exposes a grpc service, on a different port, that implements the Envoy Rate Limit protocol (v3).
- Getting started
- How it works
- Configuration
- Development
- Testing Environment
- Kubernetes
- Contributing
- License
Limitador is under active development, and its API has not been stabilized yet.
Add this to your Cargo.toml
:
[dependencies]
limitador = { version = "0.3.0" }
For more information, see the README
of the crate
Run with Docker (replace latest
with the version you want):
docker run --rm --net=host -it quay.io/kuadrant/limitador:v1.0.0
Run locally:
cargo run --release --bin limitador-server -- --help
Refer to the help message on how to start up the server. More information are available
in the server's README.md
cargo build
Some tests need a redis deployed in localhost:6379
. You can run it in Docker with:
docker run --rm -p 6379:6379 -it redis
Then, run the tests:
cargo test --all-features
or you can run tests disabling the "redis storage" feature:
cd limitador; cargo test --no-default-features
Join us on the #kuadrant channel in the Kubernetes Slack workspace, for live discussions about the roadmap and more.