-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the ThrottleX project wiki! This is your go-to resource for all things related to the ThrottleX rate-limiting library. Whether you're a developer looking to understand how ThrottleX works, contribute to its development, or implement it in your own projects, you've come to the right place.
ThrottleX is an open-source, distributed rate-limiting library for Go that allows developers to efficiently manage and control API request rates. It helps prevent abuse, maintain service stability, and ensure fair usage across multiple clients. With support for in-memory and Redis-backed storage, ThrottleX is designed for flexibility and scalability.
- Multiple Rate-Limiting Algorithms: ThrottleX currently supports three main algorithms: Fixed Window, Sliding Window, and Token Bucket. Each algorithm provides different capabilities to handle traffic control and manage resource allocation.
- Storage Options: Offers support for both in-memory and Redis-backed storage to handle rate-limiting data.
- Distributed Rate Limiting: Scalable and distributed rate-limiting support to manage requests across multiple servers.
- Extensible Design: Built to support future expansion with additional rate-limiting policies such as Leaky Bucket, Concurrency Limits, and more.
- System Architecture and Technical Overview - Learn about the components, architecture, and flow of requests in ThrottleX.
- Installation and Setup - Instructions on how to set up ThrottleX in your environment.
- Examples - Full examples of integrating ThrottleX with REST, gRPC, and GraphQL APIs
- Rate Limiting Algorithms - Detailed explanations of the rate-limiting algorithms currently implemented.
- Contributing to ThrottleX - Information for those interested in contributing to the project.
If you're new to ThrottleX, we recommend starting with the System Architecture and Technical Overview to understand how ThrottleX works under the hood. Then, check out the Installation and Setup guide to get it running in your environment.
ThrottleX is currently in pre-release (v1.0.0-rc1). The core rate-limiting algorithms are fully functional, and we are working on adding more policies, enhancing performance, and improving the documentation.
We're also relatively new to the open-source community, so any feedback or advice is greatly appreciated!
We have a lot planned for ThrottleX, including:
- Prioritized Rate Limiting: Different priorities for different users.
- Exponential Backoff: Increase wait times for clients that keep hitting rate limits.
- Dynamic Rate Limiting: Adapt rate limits based on server load.
Feel free to explore and contribute to our roadmap! We welcome all contributions and suggestions.
- GitHub: ThrottleX GitHub Repository - The source code, issues, and pull requests.
- Discussions: Use the GitHub Discussions page to ask questions, propose new features, or get involved in ongoing conversations.
Thank you for visiting the ThrottleX wiki! We hope this project will help you efficiently manage API traffic, prevent abuse, and scale your services seamlessly. If you have questions or want to contribute, we’d love to have you join the journey!