awesome-resty is a list of OpenResty / Nginx modules, Lua libraries, and related resources.
- Web Site: http://openresty.org/
- Mailing List: https://groups.google.com/forum/#!forum/openresty-en (Chinese List)
- Github Organization: https://github.com/openresty
- Lead Developer: @agentzh
- Create a New Issue where you describe the needed additions, deletions or changes.
- Fork this repository and make the changes, and create a pull request.
- Post a reply in the awesome-resty thread in openresty-en mailing list.
- Modules
- Libraries
- Core Libraries
- Web Frameworks
- Web Development Essentials
- Middleware and API Tools
- Templating
- Validation
- Authentication and Authorization
- Cryptography
- Networking
- Databases and Storages
- Testing and Profiling
- Message Queuing and Task Management
- Bar Codes and QR Codes
- Utilities
- Date and Time
- Compression
- Text Formats
- Document Formats
- Image Formats
- Localization
- Caching
- Metrics and Statistics
- Logging
- Web APIs
- Other Sources for Libraries
- Books and Tutorials
- Videos
- Conferences, Workshops and Events
- See Also
Core modules come bundled in OpenResty package.
- ngx_openresty β Turning Nginx into a full-fledged Web App Server - Sources for OpenResty Bundle Generation
- lua-nginx-module β Embed the power of Lua into Nginx
- echo-nginx-module β An Nginx module for bringing the power of "echo", "sleep", "time" and more to Nginx's config file
- xss-nginx-module β Native support for cross-site scripting (XSS) in an nginx
- set-misc-nginx-module β Various set_xxx directives added to nginx's rewrite module (md5/sha1, sql/json quoting, and many more)
- encrypted-session-nginx-module β Encrypt and decrypt Nginx variable values
- srcache-nginx-module β Transparent subrequest-based caching layout for arbitrary nginx locations
- lua-upstream-nginx-module β Nginx C module to expose Lua API to ngx_lua for Nginx upstreams
- headers-more-nginx-module β Set and clear input and output headers...more than "add"!
- array-var-nginx-module β Add support for array variables to nginx config files
- memc-nginx-module β An extended version of the standard memcached module that supports set, add, delete, and many more memcached commands
- redis2-nginx-module β Nginx upstream module for the Redis 2.0 protocol
- rds-json-nginx-module β An nginx output filter that formats Resty DBD Streams generated by ngx_drizzle and others to JSON
- rds-csv-nginx-module β Nginx output filter module to convert Resty-DBD-Streams (RDS) to Comma-Separated Values (CSV)
- drizzle-nginx-module β An Nginx upstream module that talks to mysql and drizzle by libdrizzle
- ngx_postgres β Upstream module that allows Nginx to communicate directly with PostgreSQL database
- 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 β Collection of small and useful nginx add-ons
Please also note that there is resty command line client included in OpenResty bundle. The command line client sources can be found on Github.
- Please refer Nginx Documentation about the Core Nginx Modules.
- ngx_pagespeed (Github) β Automatic PageSpeed optimization module for Nginx
- ModSecurity β Open Source Web Application Firewall
- NAXSI β NAXSI is an open-source, high performance, low rules maintenance WAF for NGINX; NAXSI means Nginx Anti Xss & Sql Injection
- nginx-upsync-module β Nginx C module, syncing upstreams from consul or others, dynamiclly adjusting backend servers weight, needn't reload nginx
Core Libraries are bundled in OpenResty package, and you don't need to separately install them.
- lua-resty-core - New FFI-based Lua API for the ngx_lua module
- lua-resty-upstream-healthcheck β Health Checker for Nginx Upstream Servers in Pure Lua
- lua-resty-string β String utilities and common hash functions for ngx_lua and LuaJIT
- lua-resty-lock β Simple nonblocking lock API for ngx_lua based on shared memory dictionaries
- lua-resty-lrucache β Lua-land LRU Cache based on LuaJIT FFI
- lua-resty-dns β DNS resolver for the Nginx Lua module
- lua-resty-upload β Streaming reader and parser for HTTP file uploading based on ngx_lua cosocket
- lua-resty-websocket β Lua WebSocket implementation for the ngx_lua module
- lua-resty-mysql β Non-blocking Lua MySQL client driver for ngx_lua based on the cosocket API
- lua-resty-memcached β Lua memcached client driver for the ngx_lua based on the cosocket API
- lua-resty-redis β Lua Redis client driver for the ngx_lua based on the cosocket API
- lua-redis-parser β Redis reply parser and request constructor library for Lua
- lua-rds-parser β Resty-DBD-Stream (RDS) parser for Lua written in C
- lua-cjson β Lua cJSON is a fast JSON encoding / parsing module for Lua
- Lapis β Lapis is a framework for building web applications using MoonScript or Lua that runs inside of a customized version of Nginx called OpenResty
- Vanilla β An OpenResty Web Framework
- Lusty β Lua RESTful Web Application Framework, an extensible and speedy web framework
- GIN β A fast, low-latency, low-memory footprint, web JSON-API framework with Test Driven Development helpers and patterns
- Quick Server β A Server Framework Based on OpenResty
- Sailor β A Lua MVC Web Framework
- lua-resty-rack β A simple and extensible HTTP server framework for OpenResty
- MOOCHINE β A simple and lightweight web framework based on OpenResty
- sinatra-openresty β Sinatra ported to OpenResty framework
- lj-web β Lightweight Web Framework Based On ngx_openresty
- Gimlet Cocktail β A micro web application framework for OpenResty written in Moonscript inspired by Martini & Sinatra
- durap β Durap is a Lua Web Framework based on OpenResty.
- Ziggy Stardust β Ziggy Stardust (or just "stardust") is a simple nginx/Lua framework inspired by Sinatra, Express, and Mercury
- zLua β A Codeigniter like Lua framework based on OpenResty
- lua-resty-stack β OpenResty Simple Application Stack
- dodolu β A lightweight web framework based on OpenResty
- Octopus (Github) β The Lua Web Platform
- lua-resty-cookie β Lua library for HTTP cookie manipulations for OpenResty/ngx_lua
- lua-resty-session β Session library for OpenResty implementing Secure Cookie Protocol
- lua-resty-reqargs β Helper to Retrieve application/x-www-form-urlencoded, multipart/form-data, and application/json Request Arguments
- lua-resty-woothee β The Lua-Openresty implementation of Project Woothee, which is a multi-language user-agent strings parsers
- lua-resty-r3 β libr3 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
- router.lua β A barebones router for Lua, it matches urls and executes lua functions
- lua-resty-mobile β This library parses HTTP headers and detects mobile device*
- lua-resty-jwt β JWT (JSON Web Tokens) for The Great OpenResty
- lua-resty-post β HTTP Post Utility for OpenResty (File Uploading Helper)
- neturl β URL and Query string parser, builder, normalizer for Lua
- Kong (GitHub) β KONG: Microservice Management Layer (Secure, Manage & Extend your APIs and Microservices)
- lua-resty-template β A Compiling (HTML) templating engine for Lua and OpenResty
- lemplate β OpenResty/Lua template framework implementing Perl's TT2 templating language
- etlua β Embedded Lua templates
- lua-resty-tmpl β A simple template engine for Lua and OpenResty, derived from lua-template.
- Alternatives β Some alternative Lua templating solutions that may work just fine with OpenResty
- lua-resty-validation β An extendable chaining validation and filtering library for Lua and OpenResty
- 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-string β String utilities and common hash functions for ngx_lua and LuaJIT
- lua-resty-nettle β LuaJIT FFI bindings for Nettle (a low-level cryptographic library)
- lua-resty-auto-ssl β On the fly (and free) SSL registration and renewal inside OpenResty/nginx with Let's Encrypt
- lua-resty-murmurhash2 β LuaJIT MurmurHash 2 bindings to Nginx / OpenResty murmurhash2 implementation
- lua-resty-hmac β Lua driver for making and receiving hmac signed requests
- lua-resty-scrypt β LuaJIT FFI-based scrypt library for OpenResty
- lua-resty-xxhash β LuaJIT FFI-bindings to xxHash, an Extremely fast non-cryptographic hash algorithm
- lua-resty-rsa β RSA functions for LuaJIT
- lua-resty-hawk β Hawk authentication on Nginx with Lua and OpenResty
- lua-resty-http by @pintsized β Lua HTTP client cosocket driver for OpenResty / ngx_lua
- lua-resty-http by @liseen β Lua http client driver for the ngx_lua based on the cosocket API
- lua-resty-http by @DorianGray β Lua HTTP client driver for ngx_lua based on the cosocket API
- lua-resty-http-simple β Simple Lua HTTP client driver for ngx_lua
- lua-resty-httpipe β Lua HTTP client cosocket driver for OpenResty / ngx_lua
- lua-resty-httpclient β Nonblocking Lua HTTP Client library for aLiLua & ngx_lua
- lua-httpcli-resty β Lua HTTP client module for OpenResty
- lua-resty-websocket β Lua WebSocket implementation for the ngx_lua module
- lua-resty-iputils β Utility functions for working with IP addresses in OpenResty
- lua-resty-readurl β Lua library for capturing urls, decoding, and logging results
- lua-resty-socks5 β Lua SOCKS5 client for the ngx_lua based on the cosocket API
- FreeWAF β High-performance WAF built on the OpenResty stack
- lua-resty-tarpit β OpenResty response time inflation, capture and delay unwanted requests
- lua-resty-jsonrpc-batch β JSON-RPC 2.0 Batch Request protocol module for OpenResty
- lua-resty-limit-traffic β Lua library for limiting and controlling traffic in OpenResty/ngx_lua
- lua-resty-limits β Limits request every second or minute
- lua-resty-fastcgi β Lua FCGI client driver for ngx_lua based on the cosocket API
- lua-resty-ftpclient β Lua FTP client driver for the ngx_lua based on the cosocket API
- lua-resty-mysql β Non-blocking Lua MySQL client driver for ngx_lua based on the cosocket API
- lua-resty-postgres β Nonblocking Lua PostgreSQL driver library for ngx_lua
- pgmoon β A pure Lua Postgres driver for use in OpenResy & more
- lua-resty-memcached β Lua memcached client driver for the ngx_lua based on the cosocket API
- lua-resty-redis β Lua Redis client driver for the ngx_lua based on the cosocket API
- 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-cluster β OpenResty Redis Cluster Client
- lua-resty-cassandra (See also: Mashape Fork) β Pure Lua Cassandra client using CQL binary protocol
- lua-resty-bloomd β A client library based on ngx_lua to interface with bloomd servers
- lua-resty-riak β Lua riak protocol buffer client driver for the ngx_lua based on the cosocket API
- lua-resty-mongol β Native Lua Mongodb driver which supports both luasocket and ngx_lua based on the cosocket API
- lua-resty-mongo β Lua mongodb client driver for the ngx_lua based on the cosocket API
- lua-mongo β A simple Lua Mongo driver (a fork made to work with co-sockets)
- lua-resty-kyototycoon β Lua client driver for KyotoTycoon using its native wire protocol (OpenResty/ngx_lua)
- lua-resty-tarantool β Library for working with Tarantool from Nginx with the embedded Lua module or with OpeRresty
- lua-nginx-tarantool β A driver for a NoSQL database in a Lua script Tarantool build on fast nginx cosockets
- lua-resty-ssdb β Lua ssdb client driver for the ngx_lua based on the cosocket API, SSDB is a leveldb server
- ledis-openresty β Lua LedisDB client driver for the ngx_lua based on the cosocket API
- lua-resty-fastdfs β Nonblocking Lua FastDFS driver library for ngx_lua
- openresty-statsd β A Lua module for OpenResty to send metrics to StatsD
- Test::Nginx β Data-driven test scaffold for Nginx C module and OpenResty Lua library development (see real-word tests in lua-resty-redis)
- nginx-systemtap-toolkit β Real-time analyzing and diagnosing tools for Nginx based on SystemTap
- stapxx β Simple macro language extentions to systemtap
- FlameGraph β Flame graphs are a visualization of profiled software, allowing the most frequent code-paths to be identified quickly and accurately
- lua-resty-busted β Test OpenResty scripts with busted
- lua-resty-test β Test frame based on OpenResty
- busted (Github) β Elegant Lua unit testing
- Telescope (Github) β Telescope is a highly customizable test library for Lua that allows for declarative tests with nested contexts
- lua-resty-qless β Lua binding to Qless (Queue / Pipeline management) for OpenResty (see also: Qless Web Interface implemented with OpenResty)
- 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 β Lua gearman client driver for the ngx_lua based on the cosocket API
- lua-resty-kafka β Lua kafka client driver for the ngx_lua based on the cosocket API
- lua-resty-beanstalkd β Lua beanstalkd client driver for the ngx_lua based on the cosocket API
- lua-resty-ironmq β Simple IronMQ client for OpenResty
- lua-resty-QRcode β QR encode tool for ngx_lua
- lua-resty-QRDecode β QR decoder for ngx_lua
- lua-resty-fileinfo β LuaJIT FFI bindings to libmagic, magic number recognition library - tries to determine file types
- lua-resty-taglib - LuaJIT FFI bindings for TagLib - An Audio Meta-Data Library
- lua-resty-uuid β LuaJIT FFI bindings for libuuid, a DCE compatible Universally Unique Identifier library
These libraries are not build to using lua-nginx-modules date time functions (except luatz) like ngx.today, ngx.time, ngx.now, ngx.localtime, or ngx.utctime, but they may still come handy. At some point we may need a more "official" time library for OpenResty.
- luatz β A Lua library for time and date manipulation (has a fallback to
ngx.now) - LuaDate β Lua Date and Time module for Lua 5.x
- SciLua Time Library β Library for the manipulation of dates and periods according to the Gregorian calendar, i.e. the internationally accepted calendar for most uses
- lua-resty-snappy β LuaJIT FFI bindings for Snappy, a fast compressor/decompressor
- lua-resty-hoedown β LuaJIT FFI bindings to Hoedown, a standards compliant, fast, secure markdown processing library in C
- lua-gumbo β Lua bindings for the Gumbo HTML5 parsing library, with a set of DOM APIs implemented in pure Lua
- lua-resty-sass β LuaJIT FFI bindings for libsass - A C/C++ implementation of a Sass compiler (http://libsass.org/).
- lua-resty-lanli β LuaJIT FFI Bindings to Lanli HTML Sanitizer Library
- lua-re2 β C and Lua wrapper for RE2 regular expression library.
- lua-aho-corasick β C++ and Lua Implementation of the Aho-Corasick (AC) string matching algorithm
- lua-resty-libcjson β LuaJIT FFI-based cJSON library for OpenResty
- lua-resty-prettycjson β Lua cJSON Pretty Formatter
- 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-libxl β LuaJIT FFI-based LibXL (Excel) library for OpenResty
- lua-resty-hpdf β LuaJIT FFI-based libHaru (PDF) library for OpenResty
- Lua IMagick β Lua Pure-C Bindings to ImageMagick
- magick β Lua Bindings to ImageMagick for LuaJIT using FFI
- giflib β Lua bindings to GIFLIB for LuaJIT using FFI
- fi-luajit β A LuaJIT interface to FreeImage
- lua-resty-gettext β LuaJIT FFI-based gettext library for OpenResty
- lua-resty-lrucache β Lua-land LRU Cache based on LuaJIT FFI
- lua-resty-tlc β Two Layer Cache implementation using lua-resty-lrucache and shared dictionaries.
- Ledge β A Lua application for OpenResty, providing HTTP cache functionality for Nginx, using Redis as a cache / metadata store
- lua-resty-cache β HTTP Cache to Redis, can serve stale response, and using
lua-resty-lockonly allow one request to populate a new cache
- LUAMETER β A Lua module for Nginx that records and provides key status and performance metrics, right from within Nginx and in real-time (Proprietary)
- ngxtop β Real-Time metrics for nginx server
- lua-resty-logger-socket β Raw-socket-based Logger Library for Nginx (based on ngx_lua)
- raven-lua β A small Lua interface to Sentry
- lua-nginx-logging β Logging utilities for Nginx written in Lua
- lua-resty-logger β Custom Logger Library for OpenResty
- lua-resty-github β Lua library for using the github api in the ngx_lua nginx module
- lua-resty-hipchat β Lua library for using the hipchat api
- lua-resty-aws β AWS signature V4 library for OpenResty + Lua
- lua-resty-s3 β Lua driver for uploading content to Amazon S3
- lua-resty-paypal β Lua Paypal client using express checkout for OpenResty
- lua-resty-17monip β 17MonIP parsing library for ngx_lua
- lua-resty-upyun β Upyun cloud-based platform
- LuaRocks Repository (Search for resty libraries in LuaRocks)
- Github Search for lua-resty-* Libraries
- Lua Toolbox
- luapower β Lua, JIT, batteries
- List of Available LuaJIT Packages
- List of Available LuaJIT FFI Bindings
- Programming OpenResty β Scripting an NGINX-based Web Platform (Work-in-Progress)
- OpenResty Best Practices (GitBook) (Chinese, use e.g. Google Translate)
- agentzh's Nginx Tutorials
- Definitely an OpenResty Guide
- Top ten things about OpenResty
- The Latest and Greatest from ngx_lua: New Features & Tools (Summary, Slides, PDF, Video)
- Nginx Configuration Snippets β A collection of useful Nginx configuration snippets
- Getting started with Lapis, the web framework
- Building an HTTP request router with NGINX and Lua - Shopify (Nginx Conf 2015)
- Enabling TLS Cross host Session Resumption with Forward Secrecy via ngx lua (Nginx Conf 2015)
- The Latest and Greatest from ngx_lua: New Features & Tools (Nginx Conf 2014)