Git Product home page Git Product logo

awesome-resty's Introduction

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
  • 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
  • Vanilla — An OpenResty Web Framework
  • 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

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 a multi-language user-agent strings parsers
  • 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

Middleware and API Tools

  • Kong (GitHub) — KONG: Microservice Management Layer (Secure, Manage & Extend your APIs and Microservices)

Templating

  • lua-resty-template — A Compiling (HTML) templating engine for Lua and OpenResty
  • etlua — Embedded Lua templates
  • Alternatives — Some alternative Lua templating solutions that may work just fine with OpenResty

Cryptography

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-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-cassandra (See also: Mashape Fork) — 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-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

Testing and Profiling

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

Message Queuing and Task Management

  • 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

Bar Codes and QR Codes

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
  • 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-prettycjson — Lua cJSON Pretty Formatter

Document Formats

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

Image Formats

  • 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

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
  • lua-resty-cache — HTTP Cache to Redis, can serve stale response, and using lua-resty-lock only allow one request to populate a new cache

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

Books

Tutorials and Guides

Conferences, Workshops and Events

See Also

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.