We have just kicked out a new release candidate, OpenResty RC1, for the community to test out.

Source package


PGP for this source tarball:


Windows binary packages

Win64 version:


PGP for the Win64 zip file:


Win32 version:


PGP for the Win32 zip file:



Special thanks go to all our developers and contributors! Also thanks Junlong Li, and Jiahao Wang for their help in preparing this release.

Version highlights

The highlights of this release candidate are:

  • LuaJIT
    • Avoid negation of signed integers in C that may hold INT*_MIN, since recent C compilers ‘take advantage’ of the undefined behavior, this completely changes the meaning of expressions like (k == -k).
    • Correct fix for stack check when recording BC_VARG.
    • Fix trace join to BC_JLOOP originating from BC_ITERN.
    • Fix math.floor() and math.ceil().
    • Many fixes imported from Mike Pall’s upstream https://github.com/luajit/luajit repository.
  • Implemented monotonic_msec() and monotonic_time() in resty.core.time.
  • Apple Silicon FFI ABI limitation workaround.
  • Reimplemented tcpsock:sslhandshake, coroutine wrapper, and ngx.req.is_internal with FFI.
  • SSL/TLS supports passphrase protected private key.
  • Fixed a segmentation fault when get headers via ngx.req.raw_header with malformed requests.
  • Fixed potential null pointer dereference.
  • lua-cjson module
    • empty_array can not work on Apple because cjson did not compare light userdata address with masked address. Since we used json_lightudata_mask when creating lightuserdata, same mask should be applied when comparing the return of touserdata.
  • headers-more-nginx-module module
    • Fixed crash while accessing uninitialized pointer.
  • lua-resty-websocket module
    • Added mtls client cert support.
  • lua-resty-memcached module
    • Implemented init_pipeline(), commit_pipeline(), and cancel_pipeline().

Full Changelog

Complete change logs since the last (formal) release,, see:



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