level077 / awesome-resty

A List of Quality OpenResty Libraries, and Resources.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

awesome-resty

awesome-resty is a list of OpenResty / Nginx modules, Lua libraries, and related resources.

Official Channels

How to Contribute on this List?

  1. Create a New Issue where you describe the needed additions, deletions or changes.
  2. Fork this repository and make the changes, and create a pull request.
  3. Post a reply in the awesome-resty thread in openresty-en mailing list.

Contents

Modules

Core Modules

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.

Core Nginx Modules

Third-party 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

Libraries

Core Libraries

Core Libraries are bundled in OpenResty package, and you don't need to separately install them.

Web Frameworks

  • Lapis — Lapis is a framework for building web applications using MoonScript or Lua that runs inside of a customized version of Nginx called OpenResty
  • Lusty — Lua RESTful Web Application Framework, an extensible and speedy web framework
  • 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
  • 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

Web Development Essentials

  • 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-woothee — The Lua-Openresty implementation of Project Woothee, which is multi-language user-agent strings parsers
  • router.lua — A barebones router for Lua, it matches urls and executes lua functions

Templating

  • lua-resty-template — A Compiling (HTML) templating engine for Lua and OpenResty
  • etlua — Embedded Lua templates

Cryptography

  • 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-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

Networking

Databases and Storages

  • 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-cassandra — Pure Lua Cassandra client using CQL binary protocol
  • 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-resty-kyototycoon — Lua client driver for KyotoTycoon using its native wire protocol (OpenResty/ngx_lua)
  • 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

Message Queuing and Task Management

  • lua-resty-qless — Lua binding to Qless (Queue / Pipeline management) for 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

Utilities

  • 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

Date and Time

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

Compression

  • lua-resty-snappy — LuaJIT FFI bindings for Snappy, a fast compressor/decompressor

Text Formats

  • 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

Document Formats

  • lua-resty-libxl — LuaJIT FFI-based LibXL (Excel) library for OpenResty
  • lua-resty-hpdf — LuaJIT FFI-based libHaru (PDF) library for OpenResty

Localization

Caching

  • lua-resty-lrucache — Lua-land LRU Cache based on LuaJIT FFI
  • Ledge — A Lua application for OpenResty, providing HTTP cache functionality for Nginx, using Redis as a cache / metadata store

Metrics and Statistics

  • 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

Logging

Web APIs

Other Sources for Libraries

Books and Tutorials

Tutorials and Guides

See Also

About

A List of Quality OpenResty Libraries, and Resources.