OpenResty® Scalable Web Platform by Extending NGINX with Lua

OpenResty XRay

Advanced observability built for OpenResty and more


limited time offer

Request TRIAL today and receive a diagnostic REPORT
Learn more

OpenResty Released

Thibault Charbonnier , 14 Aug 2019 (created 16 May 2019)

We are happy to announce the new formal release,, of the OpenResty web platform based on NGINX and LuaJIT.

Download this version here.

The (portable) source code distribution, the Win32/Win64 binary distributions, and the pre-built binary Linux packages for Ubuntu, Debian, Fedora, CentOS, RHEL, Amazon Linux are provided on this Download page.

This is the first OpenResty release based on the nginx 1.15.8 core.


Special thanks go to all our developers, sponsors, and contributors! Also thanks Thibault Charbonnier for his great help in preparing this release.

Version highlights

The highlights of this release candidate are:

  • Based on the very recent mainline nginx core 1.15.8.

  • Support for ARM64 (Aarch64) architectures. The underlying work for this feature allowed to speed up other architectures by up to ~10%.

  • We now load resty.core by default in ngx_lua and ngx_stream_lua. This behavior can be disabled with the new lua_load_resty_core directive. Note that the resty.core implementation is both safer and faster, but also required for complete ARM64 support.

  • New lua-resty-shell library for efficiently spawning sub-processes via the new ngx.pipe API.

  • New lua-resty-signal library for killing and sending signals to UNIX processes.

  • New lua-tablepool library for efficiently recycling Lua tables.

  • We dropped support for the standard Lua 5.1 interpreter, and vividly recommend the use of OpenResty's fork of LuaJIT.

  • ngx_lua

    • New ngx.pipe API which allows spawning sub-processes and communicating with them in a non-blocking way.
    • Support for connections backlog queuing in cosockets via the new pool_size and backlog options of the tcpsock:connect() method.
    • New tcpsock:receiveany() API for BSD-style receive.
  • ngx_stream_lua module

  • LuaJIT

    • We now enable the GC64 mode of LuaJIT by default on x86_64 platforms. The 2G GC-managed memory limit is now gone by default on x86_64 (the new limit is 128 TB).
    • Implemented a new table.isempty() API.
    • Implemented a new table.isarray() API.
    • Implemented a new table.nkeys() API.

    All our new Lua API functions documentation can be found here:

Full Change logs

Complete change logs since the last (formal) release,, can be browsed in the page Change Log for 1.15.8.x.


We have run extensive testing on our Amazon EC2 test cluster and ensured that all the components (including the Nginx core) play well together. The latest test report can always be found here:

We also always run our OpenResty Edge commercial software based on the latest open source version of OpenResty in our own global CDN network (dubbed "mini CDN") powering our and websites. See for more details.


Feedback on this release is more than welcome. Feel free to create new GitHub issues or send emails to one of our mailing lists.