A distributed rate-limiting solution built with Go and Redis, designed to control API traffic and ensure system stability. Supports multiple rate-limiting policies and is scalable with Docker for easy deployment.
APACHE-2.0 License
Welcome to ThrottleX, a powerful and flexible rate-limiting library for Go! ThrottleX is designed to provide multiple rate limiting algorithms, easy integration, and scalable storage backends for your APIs.
For complete documentation, examples, and detailed setup instructions, please visit the ThrottleX Wiki.
Multiple Algorithms:
Pluggable Storage Backends:
Thread-Safe and Efficient:
Highly Configurable:
Future Expansion:
To install Throttlex, use go get
:
go get -u github.com/neelp03/throttlex
For detailed setup instructions, refer to the Installation and Setup Wiki Page.
Import the package into your Go project:
import (
"github.com/neelp03/throttlex/ratelimiter"
"github.com/neelp03/throttlex/store"
)
For full examples of integrating ThrottleX with REST, gRPC, and GraphQL APIs, please refer to the Examples Wiki Page.
ThrottleX currently supports the following rate limiting algorithms:
To learn more about these algorithms and how they work, visit the Rate Limiting Algorithms Wiki Page.
Contributions are welcome! Please follow these steps:
Fork the Repository: Click on the "Fork" button at the top.
Clone Your Fork:
git clone https://github.com/neelp03/throttlex.git
cd throttlex
Create a Branch:
git checkout -b feature/your-feature-name
Make Changes: Implement your feature or fix.
Run Tests:
go test -race -v ./...
Commit and Push:
git add .
git commit -m "Add your feature"
git push origin feature/your-feature-name
Create a Pull Request: Open a pull request against the main
branch.
This project is licensed under the MIT License - see the LICENSE file for details.
For questions or support, please open an issue on the GitHub repository.