awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
uber-go avatar

uber-go/ratelimit

0
View on GitHub↗
4,665 stars·322 forks·Go·mit·15 views

Ratelimit

This is a Go library that implements a leaky-bucket algorithm to control the frequency of operations and requests per second. It serves as a concurrent request throttler that blocks calling threads until request slots become available to maintain a steady execution rate.

The project includes a traffic burst controller that allows the accumulation of unspent request capacity, permitting short-term spikes in volume while maintaining a defined long-term average rate.

The library provides capabilities for operation frequency limiting, request interval enforcement, and application resource protection. It also includes a deterministic time simulator and mock clock utilities to verify timing logic and rate limiting behavior without waiting for real-time intervals.

Features

  • Leaky Bucket Algorithms - Implements a leaky-bucket algorithm to maintain a steady execution rate for requests.
  • Frequency Limiters - Blocks the calling thread until a slot becomes available based on a defined operations-per-second limit.
  • Traffic Burst Management - Allows short-term spikes in request volume while maintaining a defined long-term average rate.
  • Rate Limiting Algorithms - Uses a leaky-bucket algorithm as the steady-state execution controller to maintain consistent operation rates.
  • Leaky Bucket Implementations - Provides a Go library implementing the leaky-bucket algorithm to control operation frequency.
  • Burst Capacity Accumulators - Implements a burst controller that allows the accumulation of unspent request capacity for short-term traffic spikes.
  • Burst Capacity Management - Enables the accumulation of unspent request slots to permit short bursts of traffic.
  • Traffic Burst Controllers - Provides a mechanism for accumulating unspent request capacity to allow short bursts of traffic.
  • Traffic Flow Control - Regulates the number of requests a service handles per second to prevent system overload.
  • Request Rate Limiting - Blocks subsequent calls until the required time interval for a specified rate has elapsed.
  • Request Throttlers - Ships a concurrent request throttler that blocks calling threads until request slots become available.
  • Wait-Based Execution Throttling - Blocks calling threads using sleep intervals to ensure operations do not exceed the defined frequency.
  • Integer Atomic Operations - Uses lock-free atomic integer operations to ensure thread-safe updates to internal state during high concurrency.
  • Deterministic Testing Clocks - Provides an interface-based clock to allow deterministic testing by simulating time progression.
  • Denial of Service Prevention - Prevents services from being overwhelmed by traffic spikes by limiting incoming request frequency.
  • Execution Timestamp Tracking - Maintains internal timestamps of the last execution to calculate necessary wait periods.
  • Time Simulation Utilities - Implements a custom clock that simulates the passage of time for deterministic testing of rate limits.
  • Rate Limiting - High-performance rate limiting implementation for Go applications.

Star history

Star history chart for uber-go/ratelimitStar history chart for uber-go/ratelimit

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Ratelimit

Similar open-source projects, ranked by how many features they share with Ratelimit.
  • codesenberg/bombardiercodesenberg avatar

    codesenberg/bombardier

    6,797View on GitHub↗

    Bombardier is a concurrent HTTP load generator and performance benchmarking tool written in Go. It functions as a latency distribution analyzer and benchmarking utility designed to measure the throughput and response speed of HTTP services by simulating high-volume request loads. The tool provides specific capabilities for TLS benchmarking, supporting client certificate authentication and the ability to bypass server certificate verification. It distinguishes itself through the use of a token-bucket algorithm for precise request rate limiting and the use of templates to export benchmark resul

    Gobenchmarkingbombardiercli
    View on GitHub↗6,797
  • jhalterman/failsafejhalterman avatar

    jhalterman/failsafe

    4,307View on GitHub↗

    Failsafe is a JVM resilience library providing a collection of fault tolerance patterns for Java applications. It functions as an asynchronous execution wrapper that runs tasks in the background and returns futures to prevent thread blocking. The library allows for the composition of resilience policies, enabling multiple patterns to be stacked into a sequential pipeline. It includes specific implementations for circuit breaking to prevent system overload, rate limiting to control traffic flow, and a framework for managing retries and fallbacks. Capability areas cover traffic management thro

    Java
    View on GitHub↗4,307
  • spulec/freezegunspulec avatar

    spulec/freezegun

    4,517View on GitHub↗

    Freezegun is a Python time mocking library and system clock emulator used to freeze the system clock to a fixed date and time. It serves as a testing utility to ensure that time-dependent logic produces consistent and predictable results during software verification. The library provides an asyncio compatible mock that preserves real monotonic clock values to prevent event loops from hanging while other system time functions remain frozen. It supports simulating the passage of time through manual clock advancement, jumping to designated dates, or using a ticking clock simulation that incremen

    Python
    View on GitHub↗4,517
  • dromara/carbondromara avatar

    dromara/carbon

    5,221View on GitHub↗

    Carbon is a Go library for semantic date and time calculations, formatting, and parsing. It provides a semantic interface to simplify temporal data handling and improve the readability of date and time manipulations. The library is distinguished by its support for multi-calendar date conversion, allowing transformations between Gregorian, Chinese Lunar, Persian, and Hebrew calendar systems. It also includes a localized temporal framework that uses ISO 639-1 codes to format dates and relative time differences across multiple language locales. Additional capabilities cover global time zone man

    Go
    View on GitHub↗5,221
See all 30 alternatives to Ratelimit→

Frequently asked questions

What does uber-go/ratelimit do?

This is a Go library that implements a leaky-bucket algorithm to control the frequency of operations and requests per second. It serves as a concurrent request throttler that blocks calling threads until request slots become available to maintain a steady execution rate.

What are the main features of uber-go/ratelimit?

The main features of uber-go/ratelimit are: Leaky Bucket Algorithms, Frequency Limiters, Traffic Burst Management, Rate Limiting Algorithms, Leaky Bucket Implementations, Burst Capacity Accumulators, Burst Capacity Management, Traffic Burst Controllers.

What are some open-source alternatives to uber-go/ratelimit?

Open-source alternatives to uber-go/ratelimit include: codesenberg/bombardier — Bombardier is a concurrent HTTP load generator and performance benchmarking tool written in Go. It functions as a… spulec/freezegun — Freezegun is a Python time mocking library and system clock emulator used to freeze the system clock to a fixed date… jhalterman/failsafe — Failsafe is a JVM resilience library providing a collection of fault tolerance patterns for Java applications. It… dromara/carbon — Carbon is a Go library for semantic date and time calculations, formatting, and parsing. It provides a semantic… apache/shenyu — Shenyu is a microservices API gateway designed to route external traffic to backend services using dynamic rules and… alibaba/sentinel — Sentinel is a microservice flow control framework designed for managing traffic limits, distributed circuit breaking,…