/Rate-Shield

A configurable rate limiter that can apply rate limiting on individual APIs with individual rules.

Primary LanguageGoMIT LicenseMIT

🚀 RateShield

A fully customizable rate limiter designed to apply rate limiting on individual APIs with specific rules.

📊 Dashboard Overview

RateShield Dashboard

RateShield Edit Rule


🎯 Why RateShield?

Why not? With some free time on hand, RateShield was created to explore the potential of building a versatile rate-limiting solution. What started as a side project is evolving into a powerful tool for developers.


🌟 Key Features

  • Customizable Limiting:
    Tailor rate limiting rules to each API endpoint according to your needs.

  • Intuitive Dashboard:
    A user-friendly interface to monitor and manage all your rate limits effectively.

  • Easy Integration:
    Plug-and-play middleware that seamlessly integrates into your existing infrastructure.


⚙️ Use Cases

  • Preventing Abuse:
    Control the number of requests your APIs can handle to prevent misuse and malicious activities.

  • Cost Management:
    Manage third-party API calls efficiently to avoid unexpected overages.


🚀 Supported Rate Limiting Algorithms

  • Token Bucket
  • Fixed Window Counter
  • More algorithms are on the way!

🪧 Usage Guide

Check out this document.


How it works?


⚠️ Important Information

  • Current Limitation:
    At present, RateShield only supports the Token Bucket & Fixed Window Counter algorithm, which may not fit all use cases.

v2 Roadmap

  • Cache rules locally for better performance.
  • Goroutine pool to increase rate litiming efficiency and performance.
  • Slack integration.

🤝 Contributing

Interested in contributing? We'd love your help! Check out our Contribution Guidelines to get started.