ThrottleX

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

Stars
32
ThrottleX - ThrottleX v1.0.0-rc1 - Pre-Release: Rate Limiting for Your APIs 🚀 Latest Release

Published by neelp03 11 days ago

Release Notes for v1.0.0-rc1

We are thrilled to announce the pre-release of ThrottleX: an open-source, distributed rate-limiting library for Go! This release marks an important milestone as we roll out ThrottleX for developers looking to manage API traffic, prevent abuse, and ensure fair usage.

This is a pre-release version, meaning it is still under active development, and we're actively looking for feedback from the community to polish it for a full production release.

Highlights:

1. Core Rate Limiting Strategies Implemented

  • Fixed Window Rate Limiting: Control the maximum number of requests in a fixed time frame.
  • Sliding Window Rate Limiting: A more dynamic approach to manage bursts and even out API usage.
  • Token Bucket Rate Limiting: Accumulate tokens over time to allow bursts, providing flexibility for peak loads.

2. Flexible Storage Backends

  • Support for both in-memory and Redis backends, allowing ThrottleX to be used in both local and distributed environments.

3. Ready-to-Use Examples

  • Included examples show how to apply rate limiting with Go, using memory-backed or Redis-backed stores, with simulated single-user and multi-user scenarios.

4. Concurrency Support

  • Basic concurrency handling ensures rate limits are enforced across simultaneous requests, making it suitable for a variety of use cases.

Future Improvements (Coming in v1.0.0 Stable Release):

  • New Rate Limiting Policies including Prioritized Rate Limiting, Geographic Rate Limiting, Dynamic Rate Limiting, Leaky Bucket Algorithm, and more.
  • Improved Project Structure: A new architecture to make rate limiting policies easy to configure via the new PolicyType enum.
  • Enhanced Error Handling and Resilience to handle distributed production environments more effectively.

How You Can Help

As this is an early pre-release version, we need your feedback to improve and get it ready for full production use. Please try out ThrottleX, open issues, suggest improvements, and share your thoughts on what features or changes would help make this the go-to rate limiter for Go developers.

Notes:

  • This release is not yet intended for production use. Testing and feedback are highly appreciated.
  • Visit our GitHub Repo for source code, examples, and documentation.

Thank you for being part of the journey! Let's make ThrottleX the ultimate rate-limiting solution for Go APIs!