Update render script and Makefile

This commit is contained in:
Jonas Zeunert
2024-04-22 21:54:39 +02:00
parent 2d63fe63cd
commit 4d0cd768f7
10975 changed files with 47095 additions and 4031084 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,22 @@
!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 +109,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,80 +123,91 @@
⟡ 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_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_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_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_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_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_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_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_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_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_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_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_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)
⟡ ngx_mail_ssl_module (http://nginx.org/en/docs/mail/ngx_mail_ssl_module.html) — The ngx_mail_ssl_module module provides the necessary support for a mail proxy server to work with the SSL/TLS protocol
⟡ ngx_mail_ssl_module
 (http://nginx.org/en/docs/mail/ngx_mail_ssl_module.html) — The ngx_mail_ssl_module module provides the necessary support for a mail proxy server to work with the SSL/TLS protocol
⟡ ngx_mail_smtp_module (http://nginx.org/en/docs/mail/ngx_mail_smtp_module.html)
⟡ ngx_mail_imap_module (http://nginx.org/en/docs/mail/ngx_mail_imap_module.html)
⟡ ngx_mail_pop3_module (http://nginx.org/en/docs/mail/ngx_mail_pop3_module.html)
⟡ ngx_stream_core_module (http://nginx.org/en/docs/stream/ngx_stream_core_module.html)
⟡ ngx_stream_ssl_module (http://nginx.org/en/docs/stream/ngx_stream_ssl_module.html) — The ngx_stream_ssl_module module provides the necessary support for a stream proxy server to work with the SSL/TLS protocol
⟡ ngx_stream_proxy_module (http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html) — The ngx_stream_proxy_module module allows proxying data streams over TCP, UDP, and UNIX-domain sockets
⟡ ngx_stream_ssl_module
 (http://nginx.org/en/docs/stream/ngx_stream_ssl_module.html) — The ngx_stream_ssl_module module provides the necessary support for a stream proxy server to work with the SSL/TLS protocol
⟡ ngx_stream_proxy_module
 (http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html) — The ngx_stream_proxy_module module allows proxying data streams over TCP, UDP, and UNIX-domain sockets
Third-party Nginx Modules
⟡ lua-var-nginx-module (https://github.com/api7/lua-var-nginx-module) — Fetchs Nginx variable by Luajit with FFI way which is fast and cheap
⟡ ngx_lua_ipc (https://github.com/slact/ngx_lua_ipc) — Interprocess communication for Lua Nginx Module and OpenResty — send named alerts with string data between Nginx worker processes
⟡ nchan (https://nchan.io/) (Github (https://github.com/slact/nchan)) — Fast, horizontally scalable, multiprocess pub/sub queuing server and proxy for HTTP, long-polling, Websockets and EventSource (SSE)
⟡ nchan (https://nchan.io/) (Github (https://github.com/slact/nchan)) — Fast, horizontally scalable, multiprocess pub/sub queuing server and proxy for HTTP, long-polling, Websockets and 
EventSource (SSE)
⟡ ngx_pagespeed (http://ngxpagespeed.com/) (Github (https://github.com/pagespeed/ngx_pagespeed)) — Automatic PageSpeed optimization module for Nginx
⟡ ModSecurity (https://www.modsecurity.org/) — Open Source Web Application Firewall
⟡ NAXSI (https://github.com/nbs-system/naxsi) — NAXSI is an open-source, high performance, low rules maintenance WAF for NGINX; NAXSI means Nginx Anti Xss & Sql Injection
⟡ nginx-upsync-module (https://github.com/weibocom/nginx-upsync-module) — Nginx C module, syncing upstreams from consul or others, dynamiclly adjusting backend servers weight, needn't reload nginx
⟡ nginx-upsync-module
 (https://github.com/weibocom/nginx-upsync-module) — Nginx C module, syncing upstreams from consul or others, dynamiclly adjusting backend servers weight, needn't reload nginx
⟡ sass-nginx-module (https://github.com/mneudert/sass-nginx-module) — Syntactically Awesome Nginx Module
⟡ More 3rd Party Modules (https://www.nginx.com/resources/wiki/modules/)
@@ -266,11 +277,11 @@
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 +329,15 @@
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.
⟡ 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.
Cryptography
@@ -403,12 +414,12 @@
⟡ 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 +433,8 @@
⟡ 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,20 +448,22 @@
⟡ 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
⟡ Test::Nginx (http://search.cpan.org/~agent/Test-Nginx-0.24/lib/Test/Nginx.pm) — Data-driven test scaffold for Nginx C module and OpenResty Lua library development (see real-word tests in lua-resty-redis 
(https://github.com/openresty/lua-resty-redis/tree/master/t))
⟡ Test::Nginx (http://search.cpan.org/~agent/Test-Nginx-0.24/lib/Test/Nginx.pm) — Data-driven test scaffold for Nginx C module and OpenResty Lua library development (see real-word tests in 
lua-resty-redis (https://github.com/openresty/lua-resty-redis/tree/master/t))
⟡ nginx-systemtap-toolkit (https://github.com/openresty/nginx-systemtap-toolkit) — Real-time analyzing and diagnosing tools for Nginx based on SystemTap
⟡ stapxx (https://github.com/openresty/stapxx) — Simple macro language extentions to systemtap
⟡ FlameGraph (https://github.com/brendangregg/FlameGraph) — Flame graphs are a visualization of profiled software, allowing the most frequent code-paths to be identified quickly and accurately
⟡ FlameGraph
 (https://github.com/brendangregg/FlameGraph) — Flame graphs are a visualization of profiled software, allowing the most frequent code-paths to be identified quickly and accurately
⟡ lua-resty-busted (https://github.com/thibaultCha/lua-resty-busted) — Test OpenResty scripts with busted
⟡ lua-resty-test (https://github.com/membphis/lua-resty-test) — Test frame based on OpenResty
⟡ busted (http://olivinelabs.com/busted/) (Github (https://github.com/Olivine-Labs/busted)) — Elegant Lua unit testing
⟡ Telescope (http://telescope.luaforge.net/) (Github (https://github.com/norman/telescope)) — Telescope is a highly customizable test library for Lua that allows for declarative tests with nested contexts
⟡ Telescope (http://telescope.luaforge.net/) (Github (https://github.com/norman/telescope)) — Telescope is a highly customizable test library for Lua that allows for declarative tests with 
nested contexts
Message Queuing and Task Management
@@ -474,8 +487,10 @@
⟡ lua-resty-worker-manager (https://github.com/Kong/lua-resty-worker-manager) — Tracks worker processes and nodes starting / restarting / reloading / stopping
⟡ lua-resty-worker-events (https://github.com/Kong/lua-resty-worker-events) — Inter process events for Nginx worker processes
⟡ lua-resty-batch (https://github.com/starius/lua-resty-batch) — Merge multiple requests in nginx to a single sub-request
⟡ lua-resty-shell (https://github.com/juce/lua-resty-shell) — Tiny non-blocking subprocess / shell library to use with OpenResty application server (using sockproc (https://github.com/juce/sockproc))
⟡ lua-resty-exec (https://github.com/jprjr/lua-resty-exec) — Non-blocking, non-shell-spawning, streaming and non-streaming subprocess library (using sockexec (https://github.com/jprjr/sockexec))
⟡ lua-resty-shell (https://github.com/juce/lua-resty-shell) — Tiny non-blocking subprocess / shell library to use with OpenResty application server (using sockproc 
(https://github.com/juce/sockproc))
⟡ lua-resty-exec (https://github.com/jprjr/lua-resty-exec) — Non-blocking, non-shell-spawning, streaming and non-streaming subprocess library (using sockexec 
(https://github.com/jprjr/sockexec))
⟡ lua-resty-repl (https://github.com/saks/lua-resty-repl) — Interactive console (REPL) for OpenResty and LuaJIT code
⟡ lua-resty-fileinfo (https://github.com/bungle/lua-resty-fileinfo) — LuaJIT FFI bindings to libmagic, magic number recognition library - tries to determine file types
⟡ lua-resty-base-encoding (https://github.com/spacewander/lua-resty-base-encoding) — Provides base32/base16/... encoding for OpenResty applications.
@@ -488,10 +503,12 @@
⟡ lua-resty-postal (https://github.com/bungle/lua-resty-postal) — LuaJIT FFI Bindings to libpostal a fast statistical parser/normalizer for street addresses around the world.
⟡ 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/anjia0532/lua-resty-maxminddb) by @anjia0532 (https://github.com/anjia0532) — A Lua library for reading MaxMind's Geolocation database format (aka mmdb or geoip2)
⟡ 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/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
⟡ lua-resty-sync (https://github.com/upyun/lua-resty-sync) - This lua-resty library help you to synchronize data(from redis, mysql, memcached and so on) based on the version changes
@@ -504,12 +521,14 @@
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.
(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
⟡ SciLua Time Library (http://scilua.org/time.html) — Library for the manipulation of dates and periods according to the Gregorian calendar, i.e. the internationally accepted calendar for most uses
⟡ SciLua Time Library
 (http://scilua.org/time.html) — Library for the manipulation of dates and periods according to the Gregorian calendar, i.e. the internationally accepted calendar for most uses
Compression
@@ -533,9 +552,10 @@
⟡ 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-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-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
⟡ lua-resty-breeze (https://github.com/weibreeze/lua-resty-breeze) — Breeze serialize for Lua and OpenResty
@@ -587,16 +607,18 @@
⟡ 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
⟡ 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
⟡ 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
⟡ Search for more "Functional Lua" projects on GitHub... (https://github.com/search?l=Lua&o=desc&q=lua+functional&s=stars&type=Repositories&utf8=%E2%9C%93)
@@ -605,8 +627,8 @@
⟡ 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
@@ -617,13 +639,15 @@
⟡ lua-resty-17mon (https://github.com/icowan/lua-resty-17mon) — ipip.net IP for OpenResty
⟡ lua-resty-upyun (https://github.com/aCayF/lua-resty-upyun) — Upyun cloud-based platform
⟡ lua-resty-tencent-cos-signature (https://github.com/mashirozx/lua-resty-tencent-cos-signature) Tencent QCloud COS request signature authorization headers generator
⟡ lua-mailgun (https://github.com/leafo/lua-mailgun) — A Lua library for sending emails and interacting with the Mailgun API. Compatible with OpenResty via Lapis HTTP API, or any other Lua script via LuaSocket.
⟡ lua-mailgun (https://github.com/leafo/lua-mailgun) — A Lua library for sending emails and interacting with the Mailgun API. Compatible with OpenResty via Lapis HTTP API, or any other Lua 
script via LuaSocket.
⟡ lua-payments (https://github.com/leafo/lua-payments) — Bindings to various payment provider APIs for use in Lua (with OpenResty or anything that supports LuaSocket)
Security
⟡ lua-resty-ddos (https://github.com/satrobit/lua-resty-ddos) — This library uses Cookie Validation to detect bots from real users
⟡ Nginx-Lua-Anti-DDoS (https://github.com/C0nw0nk/Nginx-Lua-Anti-DDoS)) — A Anti-DDoS script to protect Nginx web servers using Lua with a Javascript based authentication puzzle inspired by Cloudflare
⟡ Nginx-Lua-Anti-DDoS
 (https://github.com/C0nw0nk/Nginx-Lua-Anti-DDoS)) — A Anti-DDoS script to protect Nginx web servers using Lua with a Javascript based authentication puzzle inspired by Cloudflare
Other Sources for Libraries
@@ -641,15 +665,16 @@
Books
⟡ Programming OpenResty (https://www.gitbook.com/book/openresty/programming-openresty/details) — Scripting an NGINX-based Web Platform (Work-in-Progress)
⟡ OpenResty Best Practices (https://github.com/moonbingbing/openresty-best-practices) (GitBook (https://www.gitbook.com/book/moonbingbing/openresty-best-practices/details)) (Chinese, use e.g. Google Translate)
⟡ OpenResty Best Practices (https://github.com/moonbingbing/openresty-best-practices) (GitBook (https://www.gitbook.com/book/moonbingbing/openresty-best-practices/details)) (Chinese, use e.g.
Google Translate)
Tutorials and Guides
⟡ agentzh's Nginx Tutorials (http://openresty.org/download/agentzh-nginx-tutorials-en.html)
⟡ Definitely an OpenResty Guide (http://www.staticshin.com/programming/definitely-an-open-resty-guide/)
⟡ Top ten things about OpenResty (http://www.staticshin.com/top-tens/things-about-openresty.html)
⟡ The Latest and Greatest from ngx_lua: New Features & Tools (Summary (https://nginx.busyconf.com/activities/53d854c1c9e255cf2d00007b), Slides (http://agentzh.org/misc/slides/nginx-conf-2014/#1), PDF 
(http://agentzh.org/misc/slides/nginx-conf-2014.pdf), Video (https://www.youtube.com/watch?v=Z0fQabvVhIk))
⟡ The Latest and Greatest from ngx_lua: New Features & Tools (Summary (https://nginx.busyconf.com/activities/53d854c1c9e255cf2d00007b), Slides 
(http://agentzh.org/misc/slides/nginx-conf-2014/#1), PDF (http://agentzh.org/misc/slides/nginx-conf-2014.pdf), Video (https://www.youtube.com/watch?v=Z0fQabvVhIk))
⟡ Nginx Configuration Snippets (https://github.com/lebinh/nginx-conf) — A collection of useful Nginx configuration snippets
Videos