Displaying 1 to 20 from 41 results

WebApiThrottle - ASP.NET Web API rate limiter for IIS and Owin hosting

  •    CSharp

ASP.NET Web API Throttling handler, OWIN middleware and filter are designed to control the rate of requests that clients can make to a Web API based on IP address, client API key and request route. WebApiThrottle package is available on NuGet at nuget.org/packages/WebApiThrottle.Web API throttling can be configured using the built-in ThrottlePolicy. You can set multiple limits for different scenarios like allowing an IP or Client to make a maximum number of calls per second, per minute, per hour per day or even per week. You can define these limits to address all requests made to an API or you can scope the limits to each API route.

bottleneck - Task scheduler and rate limiter

  •    Javascript

Bottleneck is a lightweight and efficient Task Scheduler and Rate Limiter for Node.js and the browser. When dealing with services with limited resources, it's important to ensure that they don't become overloaded.Bottleneck is an easy solution as it does not add much complexity to your code.

Repose - The REstful PrOxy Service Engine

  •    Java

REPOSE is an open-source RESTful HTTP proxy service that scales to the cloud. REPOSE provides the solution to common API processing tasks such as rate limiting, client authentication, versioning, and logging so that web service developers can focus on the unique features of their services.

requests-respectful - Minimalist Requests wrapper to work within rate limits of any amount of services simultaneously

  •    Python

If you know Python, you know Requests. Requests is love. Requests is life. Depending on your use cases, you may come across scenarios where you need to use Requests a lot. Services you consume may have rate-limiting policies in place or you may just happen to be in a good mood and feel like being a good Netizen. This is where requests-respectful can come in handy. The library auto-detects the presence of a YAML file named requests-respectful.config.yml at the root of your project and will attempt to load configuration values from it.




AspNetCoreRateLimit - ASP.NET Core rate limiting middleware

  •    CSharp

AspNetCoreRateLimit is an ASP.NET Core rate limiting solution designed to control the rate of requests that clients can make to a Web API or MVC app based on IP address or client ID. The AspNetCoreRateLimit package contains an IpRateLimitMiddleware and a ClientRateLimitMiddleware, with each middleware you can set multiple limits for different scenarios like allowing an IP or Client to make a maximum number of calls in a time interval like per second, 15 minutes, etc. You can define these limits to address all requests made to an API or you can scope the limits to each API URL or HTTP verb and path.

valvelet - Limit the execution rate of a function

  •    Javascript

This is a small utility to limit the execution rate of a function. It is useful for scenarios such as REST APIs consumption where the amount of requests per unit of time should not exceed a given threshold.This module is very similar to node-function-rate-limit. The difference is that valvelet works seamlessly with promise-returning functions.

MvcThrottle - ASP.NET MVC Throttling filter

  •    CSharp

With MvcThrottle you can protect your site from aggressive crawlers, scraping tools or unwanted traffic spikes originated from the same location by limiting the rate of requests that a client from the same IP can make to your site or to specific routes.You can set multiple limits for different scenarios like allowing an IP to make a maximum number of calls per second, per minute, per hour or per day. You can define these limits to address all requests made to your website or you can scope the limits to each Controller, Action or URL, with or without query string params.

limio - A rate limiting library for Go centered around intuitive and idiomatic interfaces.

  •    Go

Limio is meant to be a dead simple rate-limiting library, primarily aimed at providing an intuitive API surface for composable operational constraints. By centering around chan int, limio provides token bucket implementations with decent backpressure and helps eliminate silly window syndrome by spreading out token distribution over smaller units of time to provide a more even flow.By using a channel, we also eliminate the need of Limiter implementations to follow a complex contract involving rates. They simply need to listen on a channel for some quantity, and then when a quantity arrives, perform that many operations.


gottle - An HTTP ratelimiter

  •    Go

RealIP - This fetches the IP from the HTTP headers (X-Forwarded-For or X-Real-IP).. This is suitable when you have a reverse proxy to your go binary.RemoteIP - extremely basic and not guareented to work as expected because Go sets the RemoteAddr of a request to IP:port and you are expected to manipulate that yourself in a middleware or something of that sort.

ex_rated - ExRated, the Elixir OTP GenServer with the naughty name that allows you to rate-limit calls to any service that requires it

  •    Elixir

If you use the PhoenixFramework there is also a great blog post on Rate Limiting a Phoenix API by danielberkompas describing how to write a plug to use ExRated in your own API. Its fast and its easy. The ExRated.check_rate function will return an {:ok, Integer} tuple if its OK to proceed with your rate limited function. The Integer returned is the current value of the incrementing counter showing how many times in the time scale window your function has already been called. If you are over limit a {:error, Integer} tuple will be returned where the Integer is always the limit you have specified in the function call.

resque-waiting-room - Resque plugin that throttles your jobs

  •    Ruby

A Resque plugin. Requires Resque >= 1.19 and a >= 1.9 Ruby (MRI, JRuby or Rubinius). If you want to limit the number of performs of a job for a given period, extend it with this module.

TokenBucket - Lock-free implementation of the token bucket algorithm in C++

  •    C++

Lock-free implementation of the token bucket algorithm in C++11. This project was created by Erik Rigtorp <erik@rigtorp.se>.

rate-limit - Meteor package to rate-limit a function by queuing up calls (instead of dropping them like throttle or debounce)

  •    Javascript

Easily rate-limit a function to run no more often than every X miliseconds, by queuing up calls. All calls will be eventually executed, unlike throttling or debouncing, which drop extra calls. This is useful for API clients, web crawling, or other tasks that need to wait at least some amount of time between calls, but for which throttling per se (dropping calls) is unacceptable.

limitless - An OTP application to integrate a rate-limiter in your application.

  •    Erlang

Limitless is a lightweight, generic library for Erlang to quickly integrate a rate-limiter inside your application. See examples directory to see how use the library with the mongodb backend.

ring-ratelimit - Rate limiting middleware for Clojure Ring

  •    Clojure

Powerful Ring middleware for request rate limiting. The redis-backend function, when called with no args, calls make-conn-pool and make-conn-spec with no args (ie. uses Redis on localhost) and uses ratelimits for Redis hash name. You can provide the Carmine configuration objects (pool, spec) and the hash name as args.

ratelimit - Smyte's high-performance rate limiter

  •    C++

A high-performance rate limiter written in C++ that speaks Redis protocol. See our blog post to learn more. Once compiled (as above), the binary lives at ./bazel-bin/ratelimit/ratelimit.

ratelimitj - A Java library for Rate-Limiting, providing extensible storage and application framework adaptors

  •    Java

A Java library for rate limiting, assembled using extensible storage and application framework adaptors. The library's interfaces support thread-safe sync, async, and reactive usage patterns. Binaries and dependency information for Maven, Ivy, Gradle and others can be found at Maven Central.

celery-singleton - Seamlessly prevent duplicate executions of celery tasks

  •    Python

Duplicate tasks clogging up your message broker? Do time based rate limits make you feel icky? Look no further! This is a baseclass for celery tasks that ensures only one instance of the task can be queued or running at any given time. Uses the task's name+arguments to determine uniqueness. That's it! Your task is a singleton and calls to do_stuff.delay() will either queue a new task or return an AsyncResult for the currently queued/running instance of the task.