Updating conversion, creating readmes

This commit is contained in:
Jonas Zeunert
2024-04-19 23:37:46 +02:00
parent 3619ac710a
commit 08e75b0f0a
635 changed files with 30878 additions and 37344 deletions

View File

@@ -1,4 +1,4 @@
 awesome-resty
 awesome-resty
A List of OpenResty / Nginx modules, Lua libraries, and related resources.
@@ -6,22 +6,21 @@
!OpenResty Logo (https://github.com/bungle/awesome-resty/raw/master/images/logo.png)
OpenResty is a full-fledged web platform by integrating the standard Nginx core, LuaJIT, many carefully written Lua libraries, lots of high quality 3rd-party Nginx modules, and most of their external 
dependencies. It is designed to help developers easily build scalable web applications, web services, and dynamic web gateways.
OpenResty is a full-fledged web platform by integrating the standard Nginx core, LuaJIT, many carefully written Lua libraries, lots of high quality 3rd-party Nginx modules, and most of their external dependencies. It is designed to help
developers easily build scalable web applications, web services, and dynamic web gateways.
By taking advantage of various well-designed Nginx modules (most of which are developed by the OpenResty team themselves), OpenResty effectively turns the nginx server into a powerful web app server, in which 
the web developers can use the Lua programming language to script various existing nginx C modules and Lua modules and construct extremely high-performance web applications that are capable to handle 10K ~ 
1000K+ connections in a single box.
By taking advantage of various well-designed Nginx modules (most of which are developed by the OpenResty team themselves), OpenResty effectively turns the nginx server into a powerful web app server, in which the web developers can use 
the Lua programming language to script various existing nginx C modules and Lua modules and construct extremely high-performance web applications that are capable to handle 10K ~ 1000K+ connections in a single box.
OpenResty aims to run your server-side web app completely in the Nginx server, leveraging Nginx's event model to do non-blocking I/O not only with the HTTP clients, but also with remote backends like MySQL, 
PostgreSQL, Memcached, and Redis.
OpenResty aims to run your server-side web app completely in the Nginx server, leveraging Nginx's event model to do non-blocking I/O not only with the HTTP clients, but also with remote backends like MySQL, PostgreSQL, Memcached, and 
Redis.
Real-world applications of OpenResty range from dynamic web portals and web gateways, web application firewalls, web service platforms for mobile apps/advertising/distributed storage/data analytics, to 
full-fledged dynamic web applications and web sites. The hardware used to run OpenResty also ranges from very big metals to embedded devices with very limited resources. It is not uncommon for our production 
users to serve billions of requests daily for millions of active users with just a handful of machines.
Real-world applications of OpenResty range from dynamic web portals and web gateways, web application firewalls, web service platforms for mobile apps/advertising/distributed storage/data analytics, to full-fledged dynamic web 
applications and web sites. The hardware used to run OpenResty also ranges from very big metals to embedded devices with very limited resources. It is not uncommon for our production users to serve billions of requests daily for 
millions of active users with just a handful of machines.
OpenResty is not an Nginx fork. It is just a software bundle. Most of the patches applied to the Nginx core in OpenResty have already been submitted to the official Nginx team and most of the patches submitted 
have also been accepted. We are trying hard not to fork Nginx and always to use the latest best Nginx core from the official Nginx team.
OpenResty is not an Nginx fork. It is just a software bundle. Most of the patches applied to the Nginx core in OpenResty have already been submitted to the official Nginx team and most of the patches submitted have also been accepted. 
We are trying hard not to fork Nginx and always to use the latest best Nginx core from the official Nginx team.
Official Channels
@@ -109,8 +108,8 @@
⟡ rds-csv-nginx-module (https://github.com/openresty/rds-csv-nginx-module) — Nginx output filter module to convert Resty-DBD-Streams (RDS) to Comma-Separated Values (CSV)
⟡ drizzle-nginx-module (https://github.com/openresty/drizzle-nginx-module) — An Nginx upstream module that talks to mysql and drizzle by libdrizzle
⟡ ngx_postgres (https://github.com/FRiCKLE/ngx_postgres) — Upstream module that allows Nginx to communicate directly with PostgreSQL database
⟡ form-input-nginx-module (https://github.com/calio/form-input-nginx-module) — This is a nginx module that reads HTTP POST and PUT request body encoded in "application/x-www-form-urlencoded", and parse the 
arguments in request body into nginx variables.
⟡ form-input-nginx-module
 (https://github.com/calio/form-input-nginx-module) — This is a nginx module that reads HTTP POST and PUT request body encoded in "application/x-www-form-urlencoded", and parse the arguments in request body into nginx variables.
⟡ ngx_coolkit (https://github.com/FRiCKLE/ngx_coolkit) — Collection of small and useful nginx add-ons
⟡ ngx_devel_kit (https://github.com/simpl/ngx_devel_kit) — an Nginx module that adds additional generic tools that module developers can use in their own modules
@@ -123,60 +122,52 @@
⟡ ngx_http_core_module (http://nginx.org/en/docs/http/ngx_http_core_module.html)
⟡ ngx_http_ssl_module (http://nginx.org/en/docs/http/ngx_http_ssl_module.html) — The ngx_http_ssl_module module provides the necessary support for HTTPS
⟡ ngx_http_v2_module (https://nginx.org/en/docs/http/ngx_http_v2_module.html) — The ngx_http_v2_module module provides support for HTTP/2
⟡ ngx_http_realip_module
 (http://nginx.org/en/docs/http/ngx_http_realip_module.html) — The ngx_http_realip_module module is used to change the client address and optional port to the one sent in the specified header fields
⟡ ngx_http_realip_module (http://nginx.org/en/docs/http/ngx_http_realip_module.html) — The ngx_http_realip_module module is used to change the client address and optional port to the one sent in the specified header fields
⟡ ngx_http_addition_module (http://nginx.org/en/docs/http/ngx_http_addition_module.html) — The ngx_http_addition_module module is a filter that adds text before and after a response
⟡ ngx_http_xslt_module (http://nginx.org/en/docs/http/ngx_http_xslt_module.html) — The ngx_http_xslt_module is a filter that transforms XML responses using one or more XSLT stylesheet
⟡ ngx_http_image_filter_module (http://nginx.org/en/docs/http/ngx_http_image_filter_module.html) — The ngx_http_image_filter_module module is a filter that transforms images in JPEG, GIF, and PNG formats
⟡ ngx_http_geoip_module
 (http://nginx.org/en/docs/http/ngx_http_geoip_module.html) — The ngx_http_geoip_module module creates variables with values depending on the client IP address, using the precompiled MaxMind databases
⟡ ngx_http_geoip_module (http://nginx.org/en/docs/http/ngx_http_geoip_module.html) — The ngx_http_geoip_module module creates variables with values depending on the client IP address, using the precompiled MaxMind databases
⟡ ngx_http_sub_module (http://nginx.org/en/docs/http/ngx_http_sub_module.html) — The ngx_http_sub_module module is a filter that modifies a response by replacing one specified string by another
⟡ ngx_http_dav_module (http://nginx.org/en/docs/http/ngx_http_dav_module.html) — The ngx_http_dav_module module is intended for file management automation via the WebDAV protocol. The module processes HTTP and 
WebDAV methods PUT, DELETE, MKCOL, COPY, and MOVE
⟡ ngx_http_dav_module (http://nginx.org/en/docs/http/ngx_http_dav_module.html) — The ngx_http_dav_module module is intended for file management automation via the WebDAV protocol. The module processes HTTP and WebDAV methods PUT, 
DELETE, MKCOL, COPY, and MOVE
⟡ ngx_http_flv_module (http://nginx.org/en/docs/http/ngx_http_flv_module.html) — The ngx_http_flv_module module provides pseudo-streaming server-side support for Flash Video (FLV) files
⟡ ngx_http_mp4_module (http://nginx.org/en/docs/http/ngx_http_mp4_module.html) — The ngx_http_mp4_module module provides pseudo-streaming server-side support for MP4 files. Such files typically have the .mp4, 
.m4v, or .m4a filename extensions
⟡ ngx_http_gunzip_module (http://nginx.org/en/docs/http/ngx_http_gunzip_module.html) — The ngx_http_gunzip_module module is a filter that decompresses responses with “Content-Encoding: gzip” for clients that do 
not support “gzip” encoding method. The module will be useful when it is desirable to store data compressed to save space and reduce I/O costs
⟡ ngx_http_gzip_static_module
 (http://nginx.org/en/docs/http/ngx_http_gzip_static_module.html) — The ngx_http_gzip_static_module module allows sending precompressed files with the “.gz” filename extension instead of regular files
⟡ ngx_http_mp4_module
 (http://nginx.org/en/docs/http/ngx_http_mp4_module.html) — The ngx_http_mp4_module module provides pseudo-streaming server-side support for MP4 files. Such files typically have the .mp4, .m4v, or .m4a filename extensions
⟡ ngx_http_gunzip_module (http://nginx.org/en/docs/http/ngx_http_gunzip_module.html) — The ngx_http_gunzip_module module is a filter that decompresses responses with “Content-Encoding: gzip” for clients that do not support “gzip” 
encoding method. The module will be useful when it is desirable to store data compressed to save space and reduce I/O costs
⟡ ngx_http_gzip_static_module (http://nginx.org/en/docs/http/ngx_http_gzip_static_module.html) — The ngx_http_gzip_static_module module allows sending precompressed files with the “.gz” filename extension instead of regular files
⟡ ngx_http_auth_request_module (http://nginx.org/en/docs/http/ngx_http_auth_request_module.html) — The ngx_http_auth_request_module module implements client authorization based on the result of a subrequest
⟡ ngx_http_random_index_module (http://nginx.org/en/docs/http/ngx_http_random_index_module.html) — The ngx_http_random_index_module module processes requests ending with the slash character (/) and picks a 
random file in a directory to serve as an index file
⟡ ngx_http_secure_link_module (http://nginx.org/en/docs/http/ngx_http_secure_link_module.html) — The ngx_http_secure_link_module module (0.7.18) is used to check authenticity of requested links, protect 
resources from unauthorized access, and limit link lifetime
⟡ ngx_http_slice_module
 (https://nginx.org/en/docs/http/ngx_http_slice_module.html) — The ngx_http_slice_module module is a filter that splits a request into subrequests, each returning a certain range of response
⟡ ngx_http_random_index_module
 (http://nginx.org/en/docs/http/ngx_http_random_index_module.html) — The ngx_http_random_index_module module processes requests ending with the slash character (/) and picks a random file in a directory to serve as an index file
⟡ ngx_http_secure_link_module
 (http://nginx.org/en/docs/http/ngx_http_secure_link_module.html) — The ngx_http_secure_link_module module (0.7.18) is used to check authenticity of requested links, protect resources from unauthorized access, and limit link lifetime
⟡ ngx_http_slice_module (https://nginx.org/en/docs/http/ngx_http_slice_module.html) — The ngx_http_slice_module module is a filter that splits a request into subrequests, each returning a certain range of response
⟡ ngx_http_stub_status_module (https://nginx.org/en/docs/http/ngx_http_stub_status_module.html) — The ngx_http_stub_status_module module provides access to basic status information
⟡ ngx_http_charset_module (http://nginx.org/en/docs/http/ngx_http_charset_module.html) — The ngx_http_charset_module module adds the specified charset to the “Content-Type” response header field
⟡ ngx_http_gzip_module (http://nginx.org/en/docs/http/ngx_http_gzip_module.html) — The ngx_http_gzip_module module is a filter that compresses responses using the “gzip” method
⟡ ngx_http_ssi_module (http://nginx.org/en/docs/http/ngx_http_ssi_module.html) — The ngx_http_ssi_module module is a filter that processes SSI (Server Side Includes) commands in responses passing through it
⟡ ngx_http_userid_module (http://nginx.org/en/docs/http/ngx_http_userid_module.html) — The ngx_http_userid_module module sets cookies suitable for client identification
⟡ ngx_http_access_module (http://nginx.org/en/docs/http/ngx_http_access_module.html) — The ngx_http_access_module module allows limiting access to certain client addresses
⟡ ngx_http_auth_basic_module (http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html) — The ngx_http_auth_basic_module module allows limiting access to resources by validating the user name and password 
using the “HTTP Basic Authentication” protocol
⟡ ngx_http_autoindex_module
 (http://nginx.org/en/docs/http/ngx_http_autoindex_module.html) — The ngx_http_autoindex_module module processes requests ending with the slash character (/) and produces a directory listing
⟡ ngx_http_auth_basic_module
 (http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html) — The ngx_http_auth_basic_module module allows limiting access to resources by validating the user name and password using the “HTTP Basic Authentication” protocol
⟡ ngx_http_autoindex_module (http://nginx.org/en/docs/http/ngx_http_autoindex_module.html) — The ngx_http_autoindex_module module processes requests ending with the slash character (/) and produces a directory listing
⟡ ngx_http_geo_module (http://nginx.org/en/docs/http/ngx_http_geo_module.html) — The ngx_http_geo_module module creates variables with values depending on the client IP address
⟡ ngx_http_map_module (http://nginx.org/en/docs/http/ngx_http_map_module.html) — The ngx_http_map_module module creates variables whose values depend on values of other variables
⟡ ngx_http_split_clients_module
 (http://nginx.org/en/docs/http/ngx_http_split_clients_module.html) — The ngx_http_split_clients_module module creates variables suitable for A/B testing, also known as split testing
⟡ ngx_http_referer_module
 (http://nginx.org/en/docs/http/ngx_http_referer_module.html) — The ngx_http_referer_module module is used to block access to a site for requests with invalid values in the “Referer” header field
⟡ ngx_http_rewrite_module (http://nginx.org/en/docs/http/ngx_http_rewrite_module.html) — The ngx_http_rewrite_module module is used to change request URI using PCRE regular expressions, return redirects, and 
conditionally select configurations
⟡ ngx_http_split_clients_module (http://nginx.org/en/docs/http/ngx_http_split_clients_module.html) — The ngx_http_split_clients_module module creates variables suitable for A/B testing, also known as split testing
⟡ ngx_http_referer_module (http://nginx.org/en/docs/http/ngx_http_referer_module.html) — The ngx_http_referer_module module is used to block access to a site for requests with invalid values in the “Referer” header field
⟡ ngx_http_rewrite_module
 (http://nginx.org/en/docs/http/ngx_http_rewrite_module.html) — The ngx_http_rewrite_module module is used to change request URI using PCRE regular expressions, return redirects, and conditionally select configurations
⟡ ngx_http_proxy_module (http://nginx.org/en/docs/http/ngx_http_proxy_module.html) — The ngx_http_proxy_module module allows passing requests to another server
⟡ ngx_http_fastcgi_module (http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html) — The ngx_http_fastcgi_module module allows passing requests to a FastCGI server
⟡ ngx_http_uwsgi_module (http://nginx.org/en/docs/http/ngx_http_uwsgi_module.html) — The ngx_http_uwsgi_module module allows passing requests to a uwsgi server
⟡ ngx_http_scgi_module (http://nginx.org/en/docs/http/ngx_http_scgi_module.html) — The ngx_http_scgi_module module allows passing requests to an SCGI server
⟡ ngx_http_memcached_module (http://nginx.org/en/docs/http/ngx_http_memcached_module.html) — he ngx_http_memcached_module module is used to obtain responses from a memcached server
⟡ ngx_http_limit_conn_module (http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html) — The ngx_http_limit_conn_module module is used to limit the number of connections per the defined key, in particular,
the number of connections from a single IP address
⟡ ngx_http_limit_req_module (http://nginx.org/en/docs/http/ngx_http_limit_req_module.html) — he ngx_http_limit_req_module module is used to limit the request processing rate per a defined key, in particular, the
processing rate of requests coming from a single IP address
⟡ ngx_http_limit_conn_module
 (http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html) — The ngx_http_limit_conn_module module is used to limit the number of connections per the defined key, in particular, the number of connections from a single IP address
⟡ ngx_http_limit_req_module (http://nginx.org/en/docs/http/ngx_http_limit_req_module.html) — he ngx_http_limit_req_module module is used to limit the request processing rate per a defined key, in particular, the processing rate of 
requests coming from a single IP address
⟡ ngx_http_empty_gif_module (http://nginx.org/en/docs/http/ngx_http_empty_gif_module.html) — The ngx_http_empty_gif_module module emits single-pixel transparent GIF
⟡ ngx_http_browser_module
 (http://nginx.org/en/docs/http/ngx_http_browser_module.html) — The ngx_http_browser_module module creates variables whose values depend on the value of the “User-Agent” request header field
⟡ ngx_http_browser_module (http://nginx.org/en/docs/http/ngx_http_browser_module.html) — The ngx_http_browser_module module creates variables whose values depend on the value of the “User-Agent” request header field
⟡ ngx_http_upstream_module (http://nginx.org/en/docs/http/ngx_http_upstream_module.html) — http://nginx.org/en/docs/http/ngx_http_upstream_module.html
⟡ ngx_http_perl_module (http://nginx.org/en/docs/http/ngx_http_perl_module.html) — The ngx_http_perl_module module is used to implement location and variable handlers in Perl and insert Perl calls into SSI
⟡ ngx_mail_core_module (http://nginx.org/en/docs/mail/ngx_mail_core_module.html)
@@ -266,11 +257,10 @@
Routing Libraries
⟡ lua-resty-route
 (https://github.com/bungle/lua-resty-route) — A URL routing library for OpenResty supporting multiple route matchers, middleware, and HTTP and WebSockets handlers to mention a few of its features
⟡ lua-resty-route (https://github.com/bungle/lua-resty-route) — A URL routing library for OpenResty supporting multiple route matchers, middleware, and HTTP and WebSockets handlers to mention a few of its features
⟡ router.lua (https://github.com/APItools/router.lua) — A barebones router for Lua, it matches URLs and executes Lua functions
⟡ lua-resty-r3 (https://github.com/toritori0318/lua-resty-r3) — libr3 (https://github.com/c9s/r3) OpenResty implementation, libr3 is a high-performance path dispatching library. It compiles your route paths into
a prefix tree (trie). By using the constructed prefix trie in the start-up time, you may dispatch your routes with efficiency
⟡ lua-resty-r3 (https://github.com/toritori0318/lua-resty-r3) — libr3 (https://github.com/c9s/r3) OpenResty implementation, libr3 is a high-performance path dispatching library. It compiles your route paths into a prefix tree (trie). By
using the constructed prefix trie in the start-up time, you may dispatch your routes with efficiency
⟡ lua-resty-libr3 (https://github.com/iresty/lua-resty-libr3) — High-performance path dispatching library base on libr3 (https://github.com/c9s/r3) for OpenResty
⟡ lua-radix-router (https://github.com/vm-001/lua-radix-router) - A lightweight, high-performance, radix tree based and OpenAPI friendly API Router for Lua / LuaJIT / OpenResty.
@@ -318,15 +308,12 @@
Authentication and Authorization
⟡ lua-resty-macaroons
 (https://github.com/bungle/lua-resty-macaroons) — LuaJIT FFI Bindings to libmacaroons Macaroons are flexible authorization credentials that support decentralized delegation, attenuation, and verification
⟡ lua-resty-openidc
 (https://github.com/pingidentity/lua-resty-openidc) — lua-resty-openidc is a library for NGINX implementing the OpenID Connect Relying Party (RP) and the OAuth 2.0 Resource Server (RS) functionality
⟡ lua-resty-macaroons (https://github.com/bungle/lua-resty-macaroons) — LuaJIT FFI Bindings to libmacaroons Macaroons are flexible authorization credentials that support decentralized delegation, attenuation, and verification
⟡ lua-resty-openidc (https://github.com/pingidentity/lua-resty-openidc) — lua-resty-openidc is a library for NGINX implementing the OpenID Connect Relying Party (RP) and the OAuth 2.0 Resource Server (RS) functionality
⟡ lua-resty-duo-mobile (https://github.com/p0pr0ck5/lua-resty-duo-mobile) — OpenResty client for the Duo Mobile Auth API
⟡ micro-auth (https://github.com/hypebeast/micro-auth) — A microservice that makes adding authentication with Google and Github to your application easy (Note: before using it in production, see: 
https://news.ycombinator.com/item?id=13682682 — hopefully we can remove this remark in a future)
⟡ lua-resty-casbin (https://github.com/casbin-lua/lua-resty-casbin) — Casbin is an authorization library that supports access control models like ACL, RBAC, ABAC in Lua (OpenResty). This is a Casbin 
authorization plugin for OpenResty.
⟡ lua-resty-casbin (https://github.com/casbin-lua/lua-resty-casbin) — Casbin is an authorization library that supports access control models like ACL, RBAC, ABAC in Lua (OpenResty). This is a Casbin authorization plugin for OpenResty.
Cryptography
@@ -403,12 +390,10 @@
⟡ iqiyi/lua-resty-couchbase (https://github.com/iqiyi/lua-resty-couchbase) — Lua couchbase client driver for the ngx_lua based on the cosocket API
⟡ lua-resty-couchdb (https://github.com/paragasu/lua-resty-couchdb) — Lua resty minimal couchdb client using nginx proxy ngx.location_capture
⟡ lua-resty-orm (https://github.com/kran/lua-resty-orm) — Simple ORM for OpenResty
⟡ lua-resty-mvc
 (https://github.com/pronan/lua-resty-mvc) — You don't need that complicated MVC framework! With just a plain folder with several simple files, you can enjoy basic but most frequently used MVC features.
⟡ lua-resty-mvc (https://github.com/pronan/lua-resty-mvc) — You don't need that complicated MVC framework! With just a plain folder with several simple files, you can enjoy basic but most frequently used MVC features.
⟡ lua-resty-memcached (https://github.com/openresty/lua-resty-memcached) — Lua memcached client driver for the ngx_lua based on the cosocket API
⟡ lua-resty-redis (https://github.com/openresty/lua-resty-redis) — Lua Redis client driver for the ngx_lua based on the cosocket API
⟡ lua-resty-redis-connector
 (https://github.com/pintsized/lua-resty-redis-connector) — Connection utilities for lua-resty-redis, making it easy and reliable to connect to Redis hosts, either directly or via Redis Sentinel
⟡ lua-resty-redis-connector (https://github.com/pintsized/lua-resty-redis-connector) — Connection utilities for lua-resty-redis, making it easy and reliable to connect to Redis hosts, either directly or via Redis Sentinel
⟡ resty-redis-cluster (https://github.com/steve0511/resty-redis-cluster) — OpenResty Redis cluster-aware client based on resty-redis-cluster
⟡ lua-resty-redis-cluster (https://github.com/cuiweixie/lua-resty-redis-cluster) — OpenResty Redis Cluster Client
⟡ lua-resty-redis-util (https://github.com/anjia0532/lua-resty-redis-util) — Based on lua-resty-redis and makes it easier to operate the Redis
@@ -422,8 +407,7 @@
⟡ lua-mongo (https://github.com/boyxuper/lua-mongo) — A simple Lua Mongo driver (a fork made to work with co-sockets)
⟡ lua-resty-influx (https://github.com/p0pr0ck5/lua-resty-influx) — OpenResty client for InfluxDB
⟡ lua-telegraf (https://github.com/lblasc/lua-telegraf) — Lua/OpenResty client for Telegraf/InfluxDB
⟡ lua-resty-kyototycoon (https://github.com/cloudflare/lua-resty-kyototycoon) by @cloudflare (https://github.com/cloudflare/) — Lua client driver for KyotoTycoon using its native wire protocol 
(OpenResty/ngx_lua)
⟡ lua-resty-kyototycoon (https://github.com/cloudflare/lua-resty-kyototycoon) by @cloudflare (https://github.com/cloudflare/) — Lua client driver for KyotoTycoon using its native wire protocol (OpenResty/ngx_lua)
⟡ lua-resty-kyototycoon (https://github.com/sjnam/lua-resty-kyototycoon) by @sjnam (https://github.com/sjnam/) — Lua client driver for KyotoTycoon using its binary protocol
⟡ lua-resty-tarantool (https://github.com/perusio/lua-resty-tarantool) — Library for working with Tarantool from Nginx with the embedded Lua module or with OpeRresty
⟡ lua-nginx-tarantool (https://github.com/ziontab/lua-nginx-tarantool) — A driver for a NoSQL database in a Lua script Tarantool build on fast nginx cosockets
@@ -437,8 +421,8 @@
⟡ lua-resty-mail (https://github.com/GUI/lua-resty-mail) — A high-level, easy to use, and non-blocking email and SMTP library for OpenResty
⟡ lua-resty-mogilefs (https://github.com/sunkan/lua-resty-mogilefs) — A Lua mogilefs client driver for the ngx_lua based on the cosocket API
⟡ lua-resty-etcd (https://github.com/api7/lua-resty-etcd) — Nonblocking Lua etcd driver library for OpenResty
⟡ lua-shdict-nginx-module (https://github.com/rainingmaster/lua-shdict-nginx-module) — An upgraded version of ngx.shared.DICT (https://github.com/openresty/lua-nginx-module#ngxshareddict), capable of sharing 
data between stream and http modules
⟡ lua-shdict-nginx-module (https://github.com/rainingmaster/lua-shdict-nginx-module) — An upgraded version of ngx.shared.DICT (https://github.com/openresty/lua-nginx-module#ngxshareddict), capable of sharing data between stream and http
modules
Testing and Profiling
@@ -454,10 +438,9 @@
Message Queuing and Task Management
⟡ lua-resty-qless (https://github.com/pintsized/lua-resty-qless) — Lua binding to Qless (Queue / Pipeline management) for OpenResty (see also: Qless Web Interface 
(https://github.com/hamishforbes/lua-resty-qless-web) implemented with OpenResty)
⟡ lua-resty-rabbitmqstomp
 (https://github.com/wingify/lua-resty-rabbitmqstomp) — Lua RabbitMQ client library which uses cosocket api for communication over STOMP 1.2 with a RabbitMQ broker which has the STOMP plugin
⟡ lua-resty-qless (https://github.com/pintsized/lua-resty-qless) — Lua binding to Qless (Queue / Pipeline management) for OpenResty (see also: Qless Web Interface (https://github.com/hamishforbes/lua-resty-qless-web) implemented with 
OpenResty)
⟡ lua-resty-rabbitmqstomp (https://github.com/wingify/lua-resty-rabbitmqstomp) — Lua RabbitMQ client library which uses cosocket api for communication over STOMP 1.2 with a RabbitMQ broker which has the STOMP plugin
⟡ lua-resty-gearman (https://github.com/zhhchen/lua-resty-gearman) — Lua gearman client driver for the ngx_lua based on the cosocket API
⟡ lua-resty-kafka (https://github.com/doujiang24/lua-resty-kafka) — Lua kafka client driver for the ngx_lua based on the cosocket API
⟡ lua-resty-beanstalkd (https://github.com/bakins/lua-resty-beanstalkd) — Lua beanstalkd client driver for the ngx_lua based on the cosocket API
@@ -489,8 +472,7 @@
⟡ lua-resty-libinjection (https://github.com/p0pr0ck5/lua-resty-libinjection) — LuaJIT FFI bindings for libinjection, a SQL/SQLi tokenizer and analyzer
⟡ lua-resty-socket (https://github.com/thibaultcha/lua-resty-socket) — Automatic LuaSocket/cosockets compatibility module
⟡ Inspect (https://github.com/kikito/inspect.lua) — Inspect is a library that transforms any Lua value into a human-readable representation. It is especially useful for debugging errors in tables.
⟡ lua-resty-maxminddb (https://github.com/lilien1010/lua-resty-maxminddb) by @lilien1010 (https://github.com/lilien1010) — LuaJIT FFI Bindings to official libmaxminddb, to get ip location with ip database 
offered by maxmind
⟡ lua-resty-maxminddb (https://github.com/lilien1010/lua-resty-maxminddb) by @lilien1010 (https://github.com/lilien1010) — LuaJIT FFI Bindings to official libmaxminddb, to get ip location with ip database offered by maxmind
⟡ lua-resty-maxminddb (https://github.com/anjia0532/lua-resty-maxminddb) by @anjia0532 (https://github.com/anjia0532) — A Lua library for reading MaxMind's Geolocation database format (aka mmdb or geoip2)
⟡ lua-resty-radixtree (https://github.com/api7/lua-resty-radixtree) — Lua / OpenResty implementation based on FFI for rax (https://github.com/antirez/rax)
⟡ lua-resty-counter (https://github.com/Kong/lua-resty-counter) — Lock-free counter for OpenResty
@@ -503,9 +485,9 @@
Date and Time
These libraries are not build to using lua-nginx-modules date time functions (except luatz) like ngx.today (https://github.com/openresty/lua-nginx-module#ngxtoday), ngx.time 
(https://github.com/openresty/lua-nginx-module#ngxtime), ngx.now (https://github.com/openresty/lua-nginx-module#ngxnow), ngx.localtime (https://github.com/openresty/lua-nginx-module#ngxlocaltime), or ngx.utctime
(https://github.com/openresty/lua-nginx-module#ngxutctime), but they may still come handy. At some point we may need a more "official" time library for OpenResty.
These libraries are not build to using lua-nginx-modules date time functions (except luatz) like ngx.today (https://github.com/openresty/lua-nginx-module#ngxtoday), ngx.time (https://github.com/openresty/lua-nginx-module#ngxtime), 
ngx.now (https://github.com/openresty/lua-nginx-module#ngxnow), ngx.localtime (https://github.com/openresty/lua-nginx-module#ngxlocaltime), or ngx.utctime (https://github.com/openresty/lua-nginx-module#ngxutctime), but they may still 
come handy. At some point we may need a more "official" time library for OpenResty.
⟡ luatz (https://github.com/daurnimator/luatz) — A Lua library for time and date manipulation (has a fallback to ngx.now)
⟡ LuaDate (https://github.com/Tieske/date) — Lua Date and Time module for Lua 5.x
@@ -533,8 +515,7 @@
⟡ jsonschema (https://github.com/api7/jsonschema) — JSON schema validator
⟡ lua-resty-jsonschema (https://github.com/tianchaijz/lua-resty-jsonschema) — https://github.com/tianchaijz/lua-resty-jsonschema
⟡ lua-laxjson (https://github.com/sjnam/lua-laxjson) - Lua binding to a relaxed streaming JSON parser, liblaxjson (https://github.com/andrewrk/liblaxjson) for LuaJIT using FFI
⟡ lua-resty-utf8rewind
 (https://github.com/bungle/lua-resty-utf8rewind) — LuaJIT FFI bindings for utf8rewind - a system library written in C designed to extend the default string handling functions with support for UTF-8 encoded text
⟡ lua-resty-utf8rewind (https://github.com/bungle/lua-resty-utf8rewind) — LuaJIT FFI bindings for utf8rewind - a system library written in C designed to extend the default string handling functions with support for UTF-8 encoded text
⟡ lua-resty-unistring (https://github.com/bungle/lua-resty-unistring) — LuaJIT FFI bindings for GNU libunistring - A Unicode string manipulation lIbrary (https://www.gnu.org/software/libunistring/)
⟡ lua-resty-htmlentities (https://github.com/detailyang/lua-resty-htmlentities) — Backport the entities to LuaJIT with the FFI binding as the entities to UTF-8 decoder
⟡ lua-resty-jsdecode (https://github.com/detailyang/lua-resty-jsdecode) — Javascript Escape Notation decoding to UTF-8 bytes
@@ -587,14 +568,14 @@
⟡ lua-resty-rfc5424 (https://github.com/detailyang/lua-resty-rfc5424) — An implementation of the RFC5424(syslog) in the OpenResty
⟡ lua-resty-fluentd (https://github.com/msempere/lua-resty-fluentd) — Lua fluentd logger for the ngx_lua based on the cosocket API
⟡ lua-resty-fluent-logger (https://github.com/mediba-system/lua-resty-fluent-logger) — A structured logger for Fluentd (OpenResty / ngx_lua)
⟡ raven-lua (https://github.com/cloudflare/raven-lua) — A small Lua interface to Sentry that also has a helpful wrapper function call() that takes any arbitrary Lua function (with arguments) and executes it, 
traps any errors and reports it automatically to Sentry
⟡ raven-lua (https://github.com/cloudflare/raven-lua) — A small Lua interface to Sentry that also has a helpful wrapper function call() that takes any arbitrary Lua function (with arguments) and executes it, traps any errors and reports
it automatically to Sentry
Functional Programming
⟡ Lua Fun (https://github.com/rtsisyk/luafun) — Lua Fun is a high-performance functional programming library for Lua designed with LuaJIT's trace compiler in mind
⟡ Penlight (https://github.com/stevedonovan/Penlight) — Penlight brings together a set of generally useful pure Lua modules, focusing on input data handling (such as reading configuration files), functional 
programming (such as map, reduce, placeholder expressions, etc), and OS path management
⟡ Penlight (https://github.com/stevedonovan/Penlight) — Penlight brings together a set of generally useful pure Lua modules, focusing on input data handling (such as reading configuration files), functional programming (such as map, 
reduce, placeholder expressions, etc), and OS path management
⟡ Moses (https://github.com/Yonaba/Moses) — A Lua utility-belt library for functional programming. It complements the built-in Lua table library, making easier operations on arrays, lists, collections
⟡ Underscore.lua (https://github.com/mirven/underscore.lua) — Underscore.lua is a Lua library that provides a set of utility functions for dealing with iterators, arrays, tables, and functions
⟡ Lodash.lua (https://github.com/axmat/lodash.lua) — A functional programming library for Lua in respect to the Javascript library Lodash
@@ -605,8 +586,7 @@
⟡ lua-resty-github (https://github.com/jamesmarlowe/lua-resty-github) — Lua library for using the github api in the ngx_lua nginx module
⟡ lua-resty-hipchat (https://github.com/jamesmarlowe/lua-resty-hipchat) — Lua library for using the hipchat api
⟡ lua-resty-newrelic (https://github.com/saks/lua-resty-newrelic) — Lua newrelic SDK for the ngx_lua based on the C SDK
⟡ api-gateway-aws
 (https://github.com/adobe-apiplatform/api-gateway-aws) — Lua module for AWS APIs. The missing AWS SDK from Nginx / OpenResty. Use it to proxy AWS APIs in a simple fashion, with any HTTP Client that you prefer.
⟡ api-gateway-aws (https://github.com/adobe-apiplatform/api-gateway-aws) — Lua module for AWS APIs. The missing AWS SDK from Nginx / OpenResty. Use it to proxy AWS APIs in a simple fashion, with any HTTP Client that you prefer.
⟡ lua-resty-aws (https://github.com/Kong/lua-resty-aws) — AWS SDK for OpenResty
⟡ lua-resty-aws-sdk (https://github.com/kiddkai/lua-resty-aws-sdk) — A raw AWS SDK generated from API specification
⟡ lua-resty-aws-email (https://github.com/paragasu/lua-resty-aws-email) — Send email using Amazon Simple Email Service(SES) API