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

Go Rate Limiting Libraries

Ranking updated Jul 13, 2026

For a rate limiting library for Go applications, the strongest matches are uber-go/ratelimit (This library provides a robust Go-native implementation of the), didip/tollbooth (This library provides Go-native HTTP middleware for rate limiting) and ulule/limiter (This library provides Go-native HTTP middleware for rate limiting). beefsack/go-rate and emicklei/go-restful round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.

We curate open-source GitHub repositories matching “best go rate limiting libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.

Go Rate Limiting Libraries

Find the best repos with AI.We'll search the best matching repositories with AI.
  • uber-go/ratelimituber-go avatar

    uber-go/ratelimit

    4,665View on GitHub↗

    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 protec

    This library provides a robust Go-native implementation of the leaky-bucket algorithm for request throttling and traffic control, though it focuses on local execution rather than distributed rate limiting.

    GoLeaky Bucket AlgorithmsBurst Capacity AccumulatorsBurst Capacity Management
    View on GitHub↗4,665
  • didip/tollboothdidip avatar

    didip/tollbooth

    2,858View on GitHub↗

    Simple middleware to rate-limit HTTP requests.

    This library provides Go-native HTTP middleware for rate limiting that supports customizable windows and in-memory storage, making it a direct fit for implementing traffic control in your applications.

    GoHTTP Middleware
    View on GitHub↗2,858
  • ulule/limiterulule avatar

    ulule/limiter

    2,336View on GitHub↗

    This library provides Go-native HTTP middleware for rate limiting that supports both in-memory and distributed storage backends like Redis, making it a direct fit for your traffic control needs.

    GoHTTP Middleware
    View on GitHub↗2,336
  • beefsack/go-rateB

    beefsack/go-rate

    0View on GitHub↗

    This library provides a token bucket implementation for rate limiting in Go, serving as a foundational tool for controlling traffic flow within your applications.

    General UtilitiesGeneral Utility Libraries
    View on GitHub↗0
  • emicklei/go-restfulemicklei avatar

    emicklei/go-restful

    5,111View on GitHub↗

    go-restful is a framework for building RESTful web services in Go. It functions as a toolkit for managing API endpoints, providing a request router that maps incoming HTTP requests to handler functions using path parameters and custom URL patterns. The framework includes a data conversion layer that transforms Go structures into JSON or XML formats for request and response bodies. It also provides a system for organizing related web services into containers to manage endpoint prefixing and shared configuration. The project covers request lifecycle management through middleware filters for va

    This is a full-featured RESTful web framework that includes middleware capabilities, but it is not a dedicated rate-limiting library designed to implement traffic control algorithms.

    GoRequest MiddlewareHTTP Middleware Pipelines
    View on GitHub↗5,111
  • luraproject/luraluraproject avatar

    luraproject/lura

    6,780View on GitHub↗

    Lura is an API gateway and traffic router that directs network requests to backend services using a configurable pipeline of processing steps. It functions as a backend load balancer and a request middleware engine designed to validate, modify, and transform incoming requests and responses. The system specializes in API response aggregation, allowing it to execute concurrent requests to multiple backend services and merge the results into a single unified output. This includes the ability to perform dynamic response mapping by renaming fields and filtering data to optimize the final client pa

    Lura is a full-featured API gateway and load balancer rather than a library or middleware component for developers to integrate into their own Go applications.

    GoRequest MiddlewareRequest Middleware
    View on GitHub↗6,780
  • gorilla/websocketgorilla avatar

    gorilla/websocket

    24,523View on GitHub↗

    This project provides a comprehensive implementation of the WebSocket protocol, enabling persistent, bidirectional communication between clients and servers. It handles the low-level complexities of the protocol, including the initial HTTP upgrade handshake and the encapsulation of data into discrete binary frames. By managing these connections, it allows applications to exchange data instantly without the overhead associated with repeated standard request cycles. The library distinguishes itself through its focus on high-frequency message exchange and concurrent connection management. It uti

    This library provides tools for managing WebSocket connections and real-time communication, but it does not implement rate limiting or traffic control algorithms.

    GoRequest Middleware
    View on GitHub↗24,523
  • go-martini/martinigo-martini avatar

    go-martini/martini

    11,603View on GitHub↗

    Martini is a web framework for the Go programming language that provides a toolkit for building web applications. It functions as a routing engine and an HTTP middleware pipeline to map network requests to specific handler functions. The framework is distinguished by its dependency injection system, which automatically resolves and provides requested service types as arguments to handler functions. This allows for the decoupling of business logic from infrastructure by matching requested types against a registry of available services. The project covers a broad range of web capabilities, inc

    Martini is a full-stack web framework that provides middleware pipelines, but it is not a dedicated rate-limiting library and lacks the specific traffic control algorithms requested.

    GoRequest Middleware
    View on GitHub↗11,603
  • danielgtaylor/humadanielgtaylor avatar

    danielgtaylor/huma

    4,170View on GitHub↗

    Huma is an OpenAPI REST framework for Go designed for building HTTP services with automatic OpenAPI 3.1 specification generation and JSON Schema validation. It serves as a toolkit for developing REST and RPC APIs with typed inputs and outputs, deriving interactive documentation directly from the source code. The framework distinguishes itself by automating the synchronization between implementation and documentation. It uses a content-negotiation engine to manage multiple serialization formats via client headers and employs a JSON Schema input validator to automatically verify request paramet

    Huma is a REST API framework rather than a dedicated rate-limiting library, though it provides request size limiting as a built-in feature for its service endpoints.

    GoRequest MiddlewareRequest Middleware
    View on GitHub↗4,170
  • elbywan/wretchelbywan avatar

    elbywan/wretch

    5,174View on GitHub↗

    Wretch is a chainable HTTP client library and Fetch API wrapper designed to simplify network request configuration, response parsing, and error handling. It functions as a network request manager and middleware framework for managing the end-to-end lifecycle of HTTP calls. The project is distinguished by a fluent interface for request configuration and a modular extension system. It utilizes a programmable response resolver to automate parsing and a plugin-based architecture to add new capabilities to request and response objects. The library covers a broad range of operational capabilities,

    This is a TypeScript-based HTTP client library for making requests, rather than a Go-native library for implementing server-side rate limiting and traffic control.

    TypeScriptHTTP Middleware Pipelines
    View on GitHub↗5,174
  • go-kit/kitgo-kit avatar

    go-kit/kit

    27,430View on GitHub↗

    Kit is a microservices architectural framework and toolkit for Go. It provides a set of standardized primitives and abstractions for implementing service, endpoint, and transport layers in a decoupled manner. The framework focuses on system instrumentation through integrated distributed request tracing and a service instrumentation toolkit that utilizes counters and gauges to export performance data to external monitoring backends. It includes a structured logging library that records system events as key-value pairs to ensure compatibility with log aggregation tools. The project covers a br

    This is a comprehensive microservices framework that includes middleware patterns for request handling, but it is not a dedicated rate-limiting library and does not provide the specific token bucket or traffic control algorithms requested.

    GoRequest Middleware
    View on GitHub↗27,430
  • kataras/iriskataras avatar

    kataras/iris

    25,582View on GitHub↗

    Iris is a high-performance web framework and API toolkit for the Go programming language. It provides the infrastructure necessary to build HTTP/2 web applications, REST APIs, and MVC-based websites. The project distinguishes itself through a flexible architectural model that supports multiple isolated application instances within a single process and allows for binary-embedded asset loading to eliminate external filesystem dependencies. It features dynamic router hot-reloading and a pluggable view engine for rendering dynamic HTML content. The framework covers a broad range of capabilities,

    This is a full-featured web framework rather than a dedicated rate-limiting library, though it includes some request-handling utilities that could be used for traffic control.

    GoRequest Middleware
    View on GitHub↗25,582
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
uber-go/ratelimit4.7KGomitMay 1, 2024
didip/tollbooth2.9KGoMITJan 12, 2025
ulule/limiter2.3KGoMITDec 10, 2024
beefsack/go-rate0———
emicklei/go-restful5.1KGoMITDec 15, 2025
luraproject/lura6.8KGoNOASSERTIONJun 20, 2026
gorilla/websocket24.5KGobsd-2-clauseMar 19, 2025
go-martini/martini11.6KGoMITMar 29, 2022
danielgtaylor/huma4.2KGoMITJun 5, 2026
elbywan/wretch5.2KTypeScriptMITJun 5, 2026

Related searches

  • a caching library for Go applications
  • a caching library for Go applications
  • a lightweight HTTP router for Go
  • a metrics collection library for Go
  • an HTTP client library for Go
  • a library for scheduling tasks in Go
  • a high performance web framework for Go
  • a message queue library for Go