Home

Awesome

awesome-resty

A List of OpenResty / Nginx modules, Lua libraries, and related resources.

What is OpenResty

OpenResty Logo

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.

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.

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

How to Contribute on this List?

There are at least three different ways to contribute:

  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.

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

To learn more about Nginx Core Modules, please refer Nginx Documentation. Some modules that come with Nginx are (not all of them are build by default):

Third-party Nginx Modules

Libraries

Core Libraries

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

Web Frameworks

Web Development Essentials

Routing Libraries

Traffic Management

Request Argments Parsers

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

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.

Compression

Text Formats

Binary Formats

Document Formats

Image Formats

Localization

Caching

Metrics and Statistics

Logging

Functional Programming

Web APIs

Security

Other Sources for Libraries

Books and Tutorials

Books

Tutorials and Guides

Videos

Conferences, Workshops and Events

Demo Applications

See Also