Limitation
Rate limiting using a fixed window counter for arbitrary keys, backed by Redis.
Install / Use
/learn @fnichol/LimitationREADME
Limitation
Rate limiting using a fixed window counter for arbitrary keys, backed by Redis.
| | |
| ------: | ------------------------------------ |
| CI | [][ci] |
| License | [
][license] |
Table of Contents
<!-- toc --> <!-- tocstop -->Project Layout
The crates included as part of Limitation are:
limitation: A library implementing a configurable, asynchronousLimiter.limitation-actix-middleware: An Actix web middleware for rate limiting requests keyed on a configurable header.limitation-example: An example command line application to demonstrate theLimiterin isolation.limitation-proxy: A reverse proxy service with configurable rate limiting.
The limitation-proxy crate is intended for deploying or experimenting with
fronting an API with rate limiting. The limitation crate can be used for
standalone projects or integration into other runtimes and frameworks. The
limitation-actix-middleware crate is for developers wishing to integrate rate
limiting into Actix web-based applications and services. Finally, the
limitation-example crate won't be released to Crates.io but rather serves as
an example.
CI Status
Build (master branch)
| Operating System | Stable Rust | Nightly Rust | <abbr title="Minimum Supported Rust Version">MSRV</abbr> |
| ---------------: | ----------------------------------------------------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| FreeBSD | [][ci-master] | [
][ci-master] | [
][ci-master] |
| Linux | [
][ci-master] | [
][ci-master] | [
][ci-master] |
| macOS | [
][ci-master] | [
][ci-master] | [
][ci-master] |
| Windows | [![Windows Stable Build Status][badge-stable_windows-build]][ci-master] | [
][ci-master] | [
][ci-master] |
Test (master branch)
| Operating System | Stable Rust | Nightly Rust | <abbr title="Minimum Supported Rust Version">MSRV</abbr> |
| ---------------: | --------------------------------------------------------------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------- |
| FreeBSD | [][ci-master] | [
][ci-master] | [
][ci-master] |
| Linux | [
][ci-master] | [
][ci-master] | [
][ci-master] |
| macOS | [
][ci-master] | [
][ci-master] | [
][ci-master] |
| Windows | [![Windows Stable Test Status][badge-stable_windows-test]][ci-master] | [
][ci-master] | [
][ci-master] |
Check (master branch)
| | Status |
| ------ | ------------------------------------------------- |
| Lint | [][ci-master] |
| Format | [
][ci-master] |
Code of Conduct
This project adheres to the Contributor Covenant [code of conduct][code-of-conduct]. By participating, you are expected to uphold this code. Please report unacceptable behavior to fnichol@nichol.ca.
Issues
If you have any problems with or questions about this project, please contact us through a [GitHub issue][issues].
Contributing
You are invited to contribute to new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.
Before you start to code, we recommend discussing your plans through a [GitHub issue][issues], especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.
Authors
Created and maintained by [Fletcher Nichol][fnichol] (fnichol@nichol.ca).
License
Licensed under the Mozilla Public License Version 2.0 ([LICENSE.txt][license]).
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the MPL-2.0 license, shall be licensed as above, without any additional terms or conditions.
