lua-resty-redis-ratelimit - Limit the request processing rate between multiple NGINX instances backed by Redis

  •        87

lua-resty-redis-ratelimit - Limit the request processing rate between multiple NGINX instances backed by Redis. Ready for testing. Probably production ready in most cases, though not yet proven in the wild. Please check the issues list and let me know if you have any problems / questions.



Related Projects

lua-resty-waf - High-performance WAF built on the OpenResty stack

  •    Perl

lua-resty-waf is currently in active development. New bugs and questions opened in the issue tracker will be answered within a day or two, and performance impacting / security related issues will be patched with high priority. Larger feature sets and enhancements will be added when development resources are available (see the Roadmap section for an outline of planned features). lua-resty-waf is compatible with the master branch of lua-resty-core. The bundled version of lua-resty-core available in recent releases of OpenResty (>= is compatible with lua-resty-waf; versions bundled with older OpenResty bundles are not, so users wanting to leverage resty.core will either need to replace the local version with the one available from the GitHub project, or patch the module based off this commit.

lua-resty-redis - Lua redis client driver for the ngx_lua based on the cosocket API

  •    Lua

This library is considered production ready.This Lua library takes advantage of ngx_lua's cosocket API, which ensures 100% nonblocking behavior.

lua-resty-template - Templating Engine (HTML) for Lua and OpenResty.

  •    Lua

lua-resty-template is a compiling (1) (HTML) templating engine for Lua and OpenResty. (1) with compilation we mean that templates are translated to Lua functions that you may call or string.dump as a binary bytecode blobs to disk that can be later utilized with lua-resty-template or basic load and loadfile standard Lua functions (see also Template Precompilation). Although, generally you don't need to do that as lua-resty-template handles this behind the scenes.

ratelimit - Go/gRPC service designed to enable generic rate limit scenarios from different types of applications

  •    Go

The rate limit service is a Go/gRPC service designed to enable generic rate limit scenarios from different types of applications. Applications request a rate limit decision based on a domain and a set of descriptors. The service reads the configuration from disk via runtime, composes a cache key, and talks to the Redis cache. A decision is then returned to the caller. Envoy's data-plane-api defines a ratelimit service proto rls.proto. Logically the data-plane-api rls is equivalent to the ratelimit.proto defined in this repo. However, due to the namespace differences and how gRPC routing works it is not possible to transparently route the legacy ratelimit (ones based in the ratelimit.proto defined in this repo) requests to the data-plane-api definitions. Therefore, the ratelimit service will upgrade the requests, process them internally as it would process a data-plane-api ratelimit request, and then downgrade the response to send back to the client. This means that, for a slight performance hit for clients using the legacy proto, ratelimit is backwards compatible with the legacy proto.

ratelimit - A Golang blocking leaky-bucket rate limit implementation

  •    Go

This package provides a Golang implementation of the leaky-bucket rate limit algorithm. This implementation refills the bucket based on the time elapsed between requests instead of requiring an interval clock to fill the bucket discretely.Create a rate limiter with a maximum number of operations to perform per second. Call Take() before each operation. Take will sleep until you can continue.

lua-resty-openidc - Lua implementation to make NGINX operate as an OpenID Connect RP or OAuth 2

  •    Lua

lua-resty-openidc is a library for NGINX implementing the OpenID Connect Relying Party (RP) and/or the OAuth 2.0 Resource Server (RS) functionality. When used as an OpenID Connect Relying Party it authenticates users against an OpenID Connect Provider using OpenID Connect Discovery and the Basic Client Profile (i.e. the Authorization Code flow). When used as an OAuth 2.0 Resource Server it can validate OAuth 2.0 Bearer Access Tokens against an Authorization Server or, in case a JSON Web Token is used for an Access Token, verification can happen against a pre-configured secret/key .

Sharq Server - A flexible rate limited queueing system

  •    Python

SHARQ is a flexible, open source, rate limited queuing system. Based on the Leaky Bucket Algorithm, SHARQ lets you create queues dynamically and update their rate limits in real time. SHARQ consists of two components - the core component and the server component. The SHARQ core is built on Redis, using Python and Lua, and the SHARQ Server is built using Flask and Gevent and talks HTTP.

redis-lua - A Lua client library for the redis key value storage system.

  •    Lua

redis-lua is a pure Lua client library for the Redis advanced key-value database.This library is tested and works with Lua 5.1, Lua 5.2 (using a compatible version of LuaSocket) and LuaJit 2.0.

ratelimit - Efficient token-bucket-based rate limiter package.

  •    Go

The ratelimit package provides an efficient token bucket implementation. See Reader returns a reader that is rate limited by the given token bucket. Each token in the bucket represents one byte.

lua-resty-core - New FFI-based API for lua-nginx-module

  •    Lua

This library is production ready and under active development.This pure Lua library reimplements part of the ngx_lua module's Nginx API for Lua with LuaJIT FFI and installs the new FFI-based Lua API into the ngx.* and ndk.* namespaces used by the ngx_lua module.

Algernon - Pure Go web server with built-in Lua, Markdown, HyperApp and Pongo2 support

  •    Go

Web server with built-in support for HTTP/2, Lua, Markdown, Pongo2, HyperApp, Amber, Sass(SCSS), GCSS, JSX, BoltDB, Redis, PostgreSQL, MariaDB/MySQL, rate limiting, graceful shutdown, plugins, users and permissions. Uses no external libraries, only pure Go.

ioredis - A robust, performance-focused and full-featured Redis client for Node and io.js

  •    Javascript

ioredis is a robust, full-featured Redis client that is used in the world's biggest online commerce company Alibaba and many other awesome companies. It supports Cluster, Sentinel, Pipelining and of course Lua scripting & Pub/Sub (with the support of binary messages), It works with Node callbacks and Native promises, GEO commands, TLS, Lua scripting and lot more.

lua-resty-limit-traffic - Lua library for limiting and controlling traffic in OpenResty/ngx_lua

  •    Lua

This library is already usable though still highly experimental.The Lua API is still in flux and may change in the near future without notice.

lua-resty-mysql - Nonblocking Lua MySQL driver library for ngx_lua or OpenResty

  •    Lua

This library is considered production ready.This Lua library takes advantage of ngx_lua's cosocket API, which ensures 100% nonblocking behavior.

lua-resty-kafka - Lua kafka client driver for the Openresty based on the cosocket API

  •    Lua

This library is still under early development and is still experimental. This Lua library takes advantage of ngx_lua's cosocket API, which ensures 100% nonblocking behavior.

lua-resty-upstream-healthcheck - Health Checker for Nginx Upstream Servers in Pure Lua

  •    Lua

This library is still under early development but is already production ready.This library performs healthcheck for server peers defined in NGINX upstream groups specified by names.

lua-resty-websocket - WebSocket support for the ngx_lua module (and OpenResty)

  •    Lua

This library is considered production ready.This Lua library implements a WebSocket server and client libraries based on the ngx_lua module.

orange - OpenResty/Nginx Gateway for API Monitoring and Management.

  •    Lua

A Gateway based on OpenResty(Nginx+lua) for API Monitoring and Management. Import the SQL file(e.g. install/orange-v0.6.3.sql) which is adapted to your Orange version into MySQL database named orange.

awesome-nginx - A curated list of awesome Nginx distributions, third modules, active developers, etc

  •    C

A curated list of awesome nginx distributions、third modules、active developers and so forth. If you want to contribute, please submit a pull request.

We have large collection of open source products. Follow the tags from Tag Cloud >>

Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.