[ANN] OpenResty 18.104.22.168 released
Yichun Zhang (agentzh)
agentzh at gmail.com
Wed Feb 4 22:22:58 UTC 2015
I am happy to announce the new formal release, 22.214.171.124, of the OpenResty bundle:
The highlights of this release are
1. the SSL/TLS support in the websocket client of lua-resty-websocket.
2. an enhanced version of "resty" command-line utility supporting user
command-line arguments and some more handy options.
Special thanks go to all our contributors and users for making this happen!
Below is the complete change log for this release, as compared to the
last formal release (126.96.36.199):
* bundled the "resty" command-line utility (version 0.01) from the
resty-cli project: https://github.com/openresty/resty-cli
* bugfix: the resty utility could not start when the nginx was
built with "./configure --conf-path=PATH" where "PATH" was
not "conf/nginx.conf". thanks Zhengyi Lai for the report.
* feature: added support for user-supplied arguments which the
user Lua scripts can access via the global Lua table "arg",
just as in the "lua" and "luajit" command-line utilities.
thanks Guanlan Dai for the patch.
* feature: added new command-line option "--nginx=PATH" to
allow the user to explicitly specify the underlying nginx
executable being invoked by this script. thanks Guanlan Dai
for the patch.
* feature: added support for multiple "-I" options to specify
more than one user library search paths. thanks Guanlan Dai
for the patch.
* feature: print out resty's own version number when the -V
option is specified.
* feature: resty: added new options "--valgrind" and
* upgraded the ngx_set_misc module to 0.28.
* feature: added the set_base32_alphabet config directive to
allow the user to specify the alphabet used for base32
encoding/decoding. thanks Vladislav Manchev for the patch.
* bugfix: set_quote_sql_str: we incorrectly escaped 0x1a to
"\z" instead of "\Z".
* change: the old set_misc_base32_padding directive is now
deprecated; use set_base32_padding instead.
* upgraded the ngx_lua module to 0.9.14.
* bugfix: ngx.re.gsub/ngx.re.sub incorrectly swallowed the
character right after a 0-width match that happens to be the
last match. thanks Guanlan Dai for the patch.
* bugfix: tcpsock:setkeepalive(): we did not check "NULL"
connection pointers properly, which might lead to
segmentation faults. thanks Yang Yue for the report.
* bugfix: ngx.quote_str_str() incorrectly escaped "\026" to
"\z" while "\Z" is expected. thanks laodouya for the
* bugfix: ngx.timer.at: fixed a small memory leak in case of
running out of memory (which should be extremely rare
* optimize: minor optimizations in timers.
* feature: added the Lua global variable "__ngx_cycle" which
is a lightuserdata holding the current "ngx_cycle_t"
pointer, which may simplify some FFI-based Lua extensions.
* doc: added a warning for the "share_all_vars" option for
* upgraded the lua-resty-core library to 0.1.0.
* bugfix: resty.core.regex: data corruptions might happen when
recursively calling ngx.re.gsub via the user replacement
function argument because of incorrect reusing a globally
shared captures Lua table. thanks James Hurst for the
* bugfix: ngx.re.gsub: garbage might get injected into gsub
result when "ngx.*" API functions are called inside the user
callback function for the replacement. thanks James Hurst
for the report.
* feature: resty.core.base: added the "FFI_BUSY" constant for
* upgraded the lua-resty-lrucache library to 0.04.
* bugfix: resty.lrucache.pureffi: set(): it did not update to
the new value at all if the key had an existing value
(either stale or not). thanks Shuxin Yang for the patch.
* upgraded the lua-resty-websocket library to 0.05.
* feature: resty.websocket.client: added support for SSL/TLS
connections (i.e., the "wss://" scheme). thanks Vladislav
Manchev for the patch.
* doc: mentioned the bitop library dependency when using the
standard Lua 5.1 interpreter (this is not needed for LuaJIT
because it is already built in). thanks Laurent Arnoud for
* upgraded LuaJIT to v2.1-20150120:
* imported Mike Pall's latest changes:
* bugfix: don't compile "IR_RETF" after "CALLT" to ff with
* bugfix: fix "BC_UCLO"/"BC_JMP" join optimization in Lua
* bugfix: fix corner case in string to number conversion.
* bugfix: x86: fix argument checks for "ipairs()"
* bugfix: gracefully handle "lua_error()" for a suspended
* x86/x64: Drop internal x87 math functions. Use libm
* x86/x64: Call external symbols directly from interpreter
code. (except for ELF/x86 PIC, where it's easier to use
* ARM: Minor interpreter optimization.
* x86: Minor interpreter optimization.
* PPC/e500: Drop support for this architecture.
* MIPS: Fix excess stack growth in interpreter.
* PPC: Fix excess stack growth in interpreter.
* ARM: Fix excess stack growth in interpreter.
* ARM: Fix write barrier check in "BC_USETS".
* ARM64: Add build infrastructure and initial port of
* OpenBSD/x86: Better executable memory allocation for
* bugfix: the "ngx_http_redis" module failed to compile when the
"ngx_gzip" module was disabled. thanks anod221 for the report.
The HTML version of the change log with lots of helpful hyper-links
can be browsed here:
OpenResty (aka. ngx_openresty) is a full-fledged web application
server by bundling the standard Nginx core, Lua/LuaJIT, lots of 3rd-party Nginx
modules and Lua libraries, as well as most of their external
dependencies. See OpenResty's homepage for details:
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:
And we have always been running the latest OpenResty in CloudFlare's
global CDN network for years.
More information about the nginx