Awesome
Limitador
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.
Getting started
Rust library
Add this to your Cargo.toml
:
[dependencies]
limitador = { version = "0.3.0" }
For more information, see the README
of the crate
Server
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
Development
Build
cargo build
Run the tests
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
Contributing
Join us on the #kuadrant channel in the Kubernetes Slack workspace, for live discussions about the roadmap and more.