# Ngx\_openresty stable version 1.0.11.28 released!

**URL:** <https://www.ruby-forum.com/t/ngx-openresty-stable-version-1-0-11-28-released/218229>\
**Category:** NGINX\
**Created:** [March 25, 2012, 9:42am UTC](https://www.ruby-forum.com/t/ngx-openresty-stable-version-1-0-11-28-released/218229 "2012-03-25T09:42:15Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [March 25, 2012, 9:42am UTC](https://www.ruby-forum.com/t/ngx-openresty-stable-version-1-0-11-28-released/218229/1 "2012-03-25T09:42:15Z")

</div>

Hi, folks!

I’m happy to announce that ngx\_openresty’s new stable version 1.0.11.28  
has  
just been released. You can download the source tarball from the  
Download  
page on [openresty.org](http://openresty.org):

[OpenResty® - Open source](http://openresty.org/#Download)

This is the first (and also the last) stable version of ngx\_openresty  
based  
on the Nginx 1.0.11 core. Future versions will be based on the latest  
Nginx  
stable version.

This version features the new “cosocket API” shipped with the ngx\_lua  
module as well as various new Lua client libraries based on that (for  
Memcached, Redis, MySQL, and others), which are all 100% nonblocking.

Special thanks go to all our contributors and users!

Here goes the complete change log, as compared to the last stable  
version,  
1.0.10.48, released about two months ago.

- feature: bundle Piotr S.'s  
CoolkitNginxModule[https://github.com/FRiCKLE/ngx\_coolkit/](https://github.com/FRiCKLE/ngx_coolkit/)0.2rc1,  
which is also enabled by default.
- feature: bundle  
LuaRestyMySQLLibrary[https://github.com/agentzh/lua-resty-mysql](https://github.com/agentzh/lua-resty-mysql)0.06,  
which is enabled by default.
- feature: bundle  
LuaRestyRedisLibrary[https://github.com/agentzh/lua-resty-redis](https://github.com/agentzh/lua-resty-redis)0.08,  
which is enabled by default.
- feature: bundle  
LuaRestyMemcachedLibrary[https://github.com/agentzh/lua-resty-memcached](https://github.com/agentzh/lua-resty-memcached)0.06,  
which is enabled by default.
- feature: bundle  
LuaRestyUploadLibrary[https://github.com/agentzh/lua-resty-upload](https://github.com/agentzh/lua-resty-upload)0.02,  
which is enabled by default. thanks Taylor Weibley for sponsoring the  
development work.
- feature: bundle  
LuaRestyStringLibrary[https://github.com/agentzh/lua-resty-string](https://github.com/agentzh/lua-resty-string)0.05,  
which is enabled by default.
- upgraded LuaNginxModule to 0.5.0rc21.
  - feature: implemented the coroutine-based TCP and Unix Domain  
client  
socket API (aka the “cosocket” API) that is mostly compatible with  
the  
LuaSocket  
[http://w3.impa.br/~diego/software/luasocket/tcp.html](http://w3.impa.br/%7Ediego/software/luasocket/tcp.html)library.
  - feature: implemented built-in connection pool support for the  
cosocket API.
  - feature: added new function  
ngx.req.socket()[http://wiki.nginx.org/HttpLuaModule#ngx.req.socket](http://wiki.nginx.org/HttpLuaModule#ngx.req.socket)to  
return a cosocket object for the downstream connection so as to do  
streaming request body reading. thanks Taylor Weibley for  
sponsoring the  
development work.
  - feature: added new directive  
lua\_http10\_buffering[http://wiki.nginx.org/HttpLuaModule#lua\_http10\_buffering](http://wiki.nginx.org/HttpLuaModule#lua_http10_buffering)which  
is  
on by default.
  - feature: added user flags support to the shared dictionary  
API[http://wiki.nginx.org/HttpLuaModule#ngx.shared.DICT](http://wiki.nginx.org/HttpLuaModule#ngx.shared.DICT).  
thanks Brian A…
  - feature: added new method flush\_all to the shared dict. thanks  
Weiqiang Li.
  - feature: added the  
ngx.sha1\_bin[http://wiki.nginx.org/HttpLuaModule#ngx.sha1\_bin](http://wiki.nginx.org/HttpLuaModule#ngx.sha1_bin)method  
which returns the binary form of the  
SHA-1 digest.
  - feature: added constant ngx.null which is a NULL light userdata  
to  
represent nil values in Lua tables and etc. this is compatible  
with  
at least  
lua-cjson[http://www.kyne.com.au/~mark/software/lua-cjson.php](http://www.kyne.com.au/%7Emark/software/lua-cjson.php)library’s  
cjson.null constant.
  - feature: allow use of ngx.null in  
ngx.log()[http://wiki.nginx.org/HttpLuaModule#ngx.log](http://wiki.nginx.org/HttpLuaModule#ngx.log)and  
print() [http://wiki.nginx.org/HttpLuaModule#print](http://wiki.nginx.org/HttpLuaModule#print) arguments.
  - feature: added new constant ngx.DECLINED.
  - bugfix: we did not declare C variables at the beginning of the  
current code block in ngx\_http\_lua\_del\_thread, reported by  
runner-mei  
in github issue  
#93[https://github.com/chaoslawful/lua-nginx-module/issues/93](https://github.com/chaoslawful/lua-nginx-module/issues/93)  
.
  - bugfix: incorrectly used ngx\_conf\_log\_error by feeding NGX\_ERROR  
as  
the first argument, as reported by runner-mei in github issue  
#92[https://github.com/chaoslawful/lua-nginx-module/issues/92](https://github.com/chaoslawful/lua-nginx-module/issues/92)  
.
  - bugfix: spelling errors in Lua exception message text.
  - bugfix:  
access\_by\_lua[http://wiki.nginx.org/HttpLuaModule#access\_by\_lua](http://wiki.nginx.org/HttpLuaModule#access_by_lua)could  
not work with the satisfy  
any configuration.
  - bugfix: now we recycle the special flush buffer and chain link  
for  
ngx.flush [http://wiki.nginx.org/HttpLuaModule#ngx.flush](http://wiki.nginx.org/HttpLuaModule#ngx.flush) to  
prevent  
request-scoped memory leaks when emitting long data streams to the  
downstream.
  - bugfix: time stamps could overflow on 32-bit systems in the  
shared  
dict API; now we explicitly use 64-bit integers.
  - bugfix: the shared dict storage might leak memory in the store:  
ngx\_http\_lua\_shdict\_lookup incorrectly assumed that nodes with  
identical keys are linked together, which might not be true after  
tree  
re-balancing. thanks the patch from Lanshun Zhou.
  - bugfix: the exptime argument to shdict:set/add/etc methods was  
incorrectly ignored when the flags argument is also specified.  
thanks  
the patch from Brian A…
  - bugfix: now we avoid using luaL\_checkstring which could do  
another long  
jump on its own. thanks Wang Bin.
  - bugfix: when the parent request takes a request body, the  
subrequest does not take any bodies, and the subrequest’s method  
is neither  
PUT nor POST, then the subrequest will no longer inherit the  
parent  
request’s request body. thanks Ou Yuanning for reporting this  
issue.
  - bugfix: C macro directives were used inside a C macro argument  
which made (at least) gcc 3.2.3 unhappy. thanks Feng Bin.
  - bugfix: setting ngx.header.last\_modified was not implemented  
fully.  
thanks Brian A…
  - optimize: removed a redundant piece of code for subrequest  
headers\_in fixes in ngx\_http\_lua\_adjust\_subrequest.
  - optimize: introduced a minor optimization that we can save one  
recvcall when the read event is active _and_ the read event is not  
ready.
  - optimize: now we recycle the downstream output buffers to save  
memory and dynamic allocation times for long-running requests with  
huge  
outputs.
  - optimize: optimized the chain-link and buf recycle logic for the  
subrequest API and make it share free buffers with the cosocket  
API.
  - docs: documented the max concurrent subrequest count limitation  
and  
max error log line size limit.
  - docs: fixed various typos in docs. thanks Wang Bin.

- upgraded EchoNginxModule to 0.38rc2.
  - bugfix:  
$echo\_request\_body[http://wiki.nginx.org/HttpEchoModule#.24echo\_request\_body](http://wiki.nginx.org/HttpEchoModule#.24echo_request_body)variable  
was not able to work on arbitrary request body chains (i.e., more  
than 2 chain links), just like the standard  
$request\_body[http://wiki.nginx.org/HttpCoreModule#.24request\_body](http://wiki.nginx.org/HttpCoreModule#.24request_body)variable  
that only processes the first two chain links. now  
$echo\_request\_body[http://wiki.nginx.org/HttpEchoModule#.24echo\_request\_body](http://wiki.nginx.org/HttpEchoModule#.24echo_request_body)no  
longer has this limitation.

- upgraded SrcacheNginxModule to 0.13rc6.
  - bugfix: fixed a typo in an error message text for response  
truncation check in  
srcache\_store[http://wiki.nginx.org/HttpSRCacheModule#srcache\_store](http://wiki.nginx.org/HttpSRCacheModule#srcache_store)  
.
  - feature: now  
srcache\_store[http://wiki.nginx.org/HttpSRCacheModule#srcache\_store](http://wiki.nginx.org/HttpSRCacheModule#srcache_store)discards  
responses that are obviously truncated when the actual output data  
is shorter than what is declared in its Content-Length response  
header. thanks Greg Grensteiner.
  - bugfix: the access phase handler actually ran in a phase later  
than  
the access phase.
  - bugfix: HTTP HEAD requests that lead to a cache hits would cause  
memory issues like invalid reads.

- upgraded Redis2NginxModule to 0.08rc4.
  - bugfix: redis “nil multi bulk replies” did not parse at all.  
thanks  
Guo Ying for reporting this issue.

- upgraded LuaRedisParserLibrary to 0.09rc7.
  - bugfix: redis “nil multi bulk replies” did not parse at all.  
thanks  
Guo Ying for reporting this issue.
  - bugfix: remove unneeded string push operations. thanks Brian  
Akins.

- upgraded XssNginxModule to 0.03rc9, RdsCsvNginxModule to 0.05rc1,  
and  
Redis2NginxModule to 0.08rc3, allowing enabling DDEBUG=1 globally.
- upgraded IconvNginxModule to 0.10rc7.
  - bugfix: enabling DDEBUG=1 globally lead to compilation errors.
  - bugfix: could not work with HTTP 1.0 requests.
  - optimize: only register output filters when the iconv\_filter is  
actually used in the config file.

- upgraded PostgresNginxModule to 0.9.
  - bugfix: Fix compatibility with poll, select and /dev/poll event  
models.
  - bugfix: Fix compatibility with PostgreSQL 9.x.
  - bugfix: Fix compatibility with nginx-1.1.4+.

- bugfix: applied the official hotfix #1  
patch[http://luajit.org/download/beta9\_hotfix1.patch](http://luajit.org/download/beta9_hotfix1.patch)for  
LuaJIT 2.0.0 beta9.
- now we enable the -DLUA\_USE\_APICHECK -DLUA\_USE\_ASSERT flags for  
LuaJITwhen the  
–with-debug option is specified.
- apply the max\_subrequests  
patch[https://github.com/agentzh/ngx\_openresty/blob/master/patches/nginx-1.0.11-max\_subrequests.patch](https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.0.11-max_subrequests.patch)to  
allow the  
NGX\_HTTP\_MAX\_SUBREQUESTS macro to be overridden from the outside and  
adjusted the default value from 50 to 200 because 50 is a little too  
conservative.
- applied the upstream\_pipelining patch to the nginx core, as  
discussed  
here:  
[http://mailman.nginx.org/pipermail/nginx-devel/2012-March/002040.htmlthis](http://mailman.nginx.org/pipermail/nginx-devel/2012-March/002040.htmlthis)  
patch is required at least for the pipelined requests support in nginx  
upstream modules.
- applied the null-character-fixes patch from the mainstream. The bug  
did result in a disclosure of previously freed memory if upstream  
server  
returned specially crafted response, potentially exposing sensitive  
information.
- upgraded the Nginx core to 1.0.11.
  - see the changes here: [http://nginx.org/en/CHANGES-1.0](http://nginx.org/en/CHANGES-1.0)

As always, you’re welcome to report bugs and feature requests either  
here  
or directly to me 🙂

OpenResty (aka. ngx\_openresty) is a full-fledged web application server  
by  
bundling the standard Nginx core, lots of 3rd-party Nginx modules, as  
well  
as most of their external dependencies.

By taking advantage of various well-designed Nginx modules,  
OpenRestyeffectively 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 is capable to handle 10K+  
connections.

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.

You can find more details on the homepage of ngx\_openresty here:

```
http://openresty.org

```

Enjoy!  
-agentzh

---

<div class="post-metadata">

**Author:** ![agentzh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/4da419/32.png) [@agentzh](https://www.ruby-forum.com/u/agentzh)\
**Post date:** [March 26, 2012, 2:30am UTC](https://www.ruby-forum.com/t/ngx-openresty-stable-version-1-0-11-28-released/218229/2 "2012-03-26T02:30:08Z")

</div>

Hi agentzh,

do you know the Kyoto Tycoon ( [http://fallabs.com/](http://fallabs.com/) )?

Do you have plans to add it to openresty?

Best regards

Aleks

On  
25-03-2012 09:41, agentzh wrote:

> Hi, folks!
> 
> I’m happy to  
> announce that ngx\_openresty’s new stable version 1.0.11.28 has just been  
> released. You can download the source tarball from the Download page on  
> [openresty.org](http://openresty.org) [1]:
> 
> [OpenResty® - High-Concurrency Web Platform Built on Nginx + LuaJIT](http://openresty.org/#Download) [2]
> 
> This is  
> the first (and also the last) stable version of ngx\_openresty based on  
> the Nginx 1.0.11 core. Future versions will be based on the latest Nginx  
> stable version.  
> [SNIPP]  
> You can find more details on the homepage  
> of ngx\_openresty here:
> 
> [http://openresty.org](http://openresty.org) [3]
> 
> Enjoy!

-agentzh

> **[Reddit Inc Blog Homepage](https://redditinc.com/news)**
>
> Get the latest product news, company announcements, and user insights from the official Reddit blog.

Links:

---

<div class="post-metadata">

**Author:** ![agentzh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/4da419/32.png) [@agentzh](https://www.ruby-forum.com/u/agentzh)\
**Post date:** [March 26, 2012, 6:10am UTC](https://www.ruby-forum.com/t/ngx-openresty-stable-version-1-0-11-28-released/218229/3 "2012-03-26T06:10:54Z")

</div>

On Mon, Mar 26, 2012 at 8:29 AM, Aleksandar L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> do you know the Kyoto Tycoon ( [http://fallabs.com/](http://fallabs.com/) )?

Yes.

> Do you have plans to add it to openresty?

As long as it has a sane Lua binding 🙂 The current official Lua  
binding incorrectly uses Lua globals to store its internal states,  
which will cause troubles in the context of ngx\_lua.

Best,  
-agentzh

---

<div class="post-metadata">

**Author:** ![agentzh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/4da419/32.png) [@agentzh](https://www.ruby-forum.com/u/agentzh)\
**Post date:** [March 26, 2012, 9:06am UTC](https://www.ruby-forum.com/t/ngx-openresty-stable-version-1-0-11-28-released/218229/4 "2012-03-26T09:06:24Z")

</div>

On Mon, Mar 26, 2012 at 12:10 PM, agentzh [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> As long as it has a sane Lua binding 🙂 The current official Lua  
> binding incorrectly uses Lua globals to store its internal states,  
> which will cause troubles in the context of ngx\_lua.

Not sure but are you meaning to run kyoto inside nginx?  
The binary protocol of ktycoon is simple and well documented.

---

<div class="post-metadata">

**Author:** ![agentzh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/4da419/32.png) [@agentzh](https://www.ruby-forum.com/u/agentzh)\
**Post date:** [March 26, 2012, 10:27pm UTC](https://www.ruby-forum.com/t/ngx-openresty-stable-version-1-0-11-28-released/218229/5 "2012-03-26T22:27:17Z")

</div>

On 26-03-2012 06:10, agentzh wrote:

> binding incorrectly uses Lua globals to store its internal states,  
> which will cause troubles in the context of ngx\_lua.

There is the possibility to use the memcache interface 😉

[http://fallabs.com/kyototycoon/spex.html#tips\_pluggableserver](http://fallabs.com/kyototycoon/spex.html#tips_pluggableserver)

I use it with

> **[Client Challenge](https://metacpan.org/pod/release/DORMANDO/Cache-Memcached-1.29/lib/Cache/Memcached.pm)**

😉

Cheers  
Aleks

---

<div class="post-metadata">

**Author:** ![agentzh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/4da419/32.png) [@agentzh](https://www.ruby-forum.com/u/agentzh)\
**Post date:** [March 26, 2012, 10:29pm UTC](https://www.ruby-forum.com/t/ngx-openresty-stable-version-1-0-11-28-released/218229/6 "2012-03-26T22:29:46Z")

</div>

Due to the fact that Kyoto Tycoon can speak memcache I think it  
should be possible to use Kyoto Tycoon also direct with

_memcache_  
module.

Due to the fact that I have not a use case for this I hope the  
‘comunity’ have some

ideas or needs 😉

Cheers

Aleks

On  
26-03-2012 09:05, David Yu wrote:

> On Mon, Mar 26, 2012 at 12:10 PM,  
> agentzh \<[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) [5]\> wrote:
> 
> > On Mon, Mar 26, 2012 at  
> > 8:29 AM, Aleksandar L. \<[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) [1]\> wrote:
> > 
> > > do you know  
> > > the Kyoto Tycoon ( [http://fallabs.com/](http://fallabs.com/) [2] )?
> > 
> > Yes.
> > 
> > >

Do you have plans to add it to openresty?

> > > 
> > 
> > As long as it has  
> > a sane Lua binding 🙂 The current official Lua  
> > binding incorrectly  
> > uses Lua globals to store its internal states,  
> > which will cause  
> > troubles in the context of ngx\_lua.
> 
> Not sure but are you meaning to  
> run kyoto inside nginx?  
> The binary protocol of ktycoon is simple and  
> well documented.
> 
> > Best,  
> > -agentzh

* * *

> > nginx mailing list

[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) [3]

> > [mailman.nginx.org archive](http://mailman.nginx.org/mailman/listinfo/nginx)  
> > [4]
> 
> –  
> When the cat is away, the mouse is alone.
> 
> - David Yu

## Links:

[1] [mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
[2] [http://fallabs.com/](http://fallabs.com/)  
[3]  
[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
[4]  
[mailman.nginx.org archive](http://mailman.nginx.org/mailman/listinfo/nginx)  
[5]  
[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![agentzh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/4da419/32.png) [@agentzh](https://www.ruby-forum.com/u/agentzh)\
**Post date:** [March 27, 2012, 2:25pm UTC](https://www.ruby-forum.com/t/ngx-openresty-stable-version-1-0-11-28-released/218229/7 "2012-03-27T14:25:50Z")

</div>

On 27-03-2012 03:07, agentzh wrote:

> API:
> 
> ```
> https://github.com/agentzh/lua-resty-memcached
> 
> ```
> 
> But I’m fraid the functionalities exposed by KT’s memcached interface  
> are a little limited, a Lua binding for KT’s native wire protocol  
> based on ngx\_lua’s cosocket may still be useful 🙂

Which module is the best to fork and start to implement 😉

> **[agentzh - Overview](https://github.com/agentzh/)**
>
> The Creator of OpenResty, Founder & CEO of OpenResty Inc. - agentzh

The ‘native wire protocol’ is HTTP 😉

[http://fallabs.com/kyototycoon/spex.html#protocol](http://fallabs.com/kyototycoon/spex.html#protocol)

#### 

…  
Kyoto Cabinet uses an RPC model called TSV-RPC, which is similar to  
XML-RPC but uses TSV rather than XML. Although TSV is inferior to XML in  
terms of expressive ability, TSV is superior to XML in terms of  
simplicity, space efficiency, and processing effectiveness.  
…

#### 

Cheers

---

<div class="post-metadata">

**Author:** ![agentzh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/4da419/32.png) [@agentzh](https://www.ruby-forum.com/u/agentzh)\
**Post date:** [March 27, 2012, 3:08am UTC](https://www.ruby-forum.com/t/ngx-openresty-stable-version-1-0-11-28-released/218229/8 "2012-03-27T03:08:19Z")

</div>

On Tue, Mar 27, 2012 at 4:28 AM, Aleksandar L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Due to the fact that Kyoto Tycoon can speak memcache I think it should be  
> possible to use Kyoto Tycoon also direct with
> 
> _memcache_ module.

And also the lua-resty-memcached library based on ngx\_lua’s cosocket  
API:

```
https://github.com/agentzh/lua-resty-memcached

```

But I’m fraid the functionalities exposed by KT’s memcached interface  
are a little limited, a Lua binding for KT’s native wire protocol  
based on ngx\_lua’s cosocket may still be useful 🙂

Best,  
-agentzh

---

<div class="post-metadata">

**Author:** ![agentzh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/4da419/32.png) [@agentzh](https://www.ruby-forum.com/u/agentzh)\
**Post date:** [March 27, 2012, 4:15pm UTC](https://www.ruby-forum.com/t/ngx-openresty-stable-version-1-0-11-28-released/218229/9 "2012-03-27T16:15:10Z")

</div>

On Tue, Mar 27, 2012 at 8:25 PM, Aleksandar L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Which module is the best to fork and start to implement 😉
> 
> [agentzh (Yichun Zhang) · GitHub](https://github.com/agentzh/)
> 
> The ‘native wire protocol’ is HTTP 😉
> 
> [http://fallabs.com/kyototycoon/spex.html#protocol](http://fallabs.com/kyototycoon/spex.html#protocol)

Oh, then we need a library named lua-resty-http then 🙂 Just check out  
how lua-resty-memcached and lua-resty-redis are implemented.

And here’s a (extremely) naive http 1.0 client implemented atop  
cosocket:

> **[ngx\_lua 中访问远方 HTTP 服务的两种推荐的做法 (Was Re: \[openresty:157\] 42分钟,乱入 OpenResty 手册!-))](https://groups.google.com/g/openresty/c/VaNGHmM7vxA)**

Best,  
-agentzh

---

<div class="post-metadata">

**Author:** ![agentzh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/4da419/32.png) [@agentzh](https://www.ruby-forum.com/u/agentzh)\
**Post date:** [March 28, 2012, 4:32am UTC](https://www.ruby-forum.com/t/ngx-openresty-stable-version-1-0-11-28-released/218229/10 "2012-03-28T04:32:49Z")

</div>

On Wed, Mar 28, 2012 at 3:44 AM, Aleksandar L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Can I use
> 
> [LuaSocket: Network support for the Lua language](http://w3.impa.br/~diego/software/luasocket/)

No 🙂

> or is this blocking, I think so?!

LuaSocket will be blocking in the context of ngx\_lua.

But ngx\_lua’s cosocket API is intentionally designed to be compatible  
with the LuaSocket API (and also with some useful functionality  
additions). See

> **[GitHub - nginxinc/nginx-wiki: ARCHIVED -- Source for the now archived NGINX Wiki...](https://github.com/nginxinc/nginx-wiki)**
>
> ARCHIVED -- Source for the now archived NGINX Wiki section of https://www.nginx.com

Best regards,  
-agentzh

---

<div class="post-metadata">

**Author:** ![agentzh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/4da419/32.png) [@agentzh](https://www.ruby-forum.com/u/agentzh)\
**Post date:** [March 27, 2012, 9:45pm UTC](https://www.ruby-forum.com/t/ngx-openresty-stable-version-1-0-11-28-released/218229/11 "2012-03-27T21:45:12Z")

</div>

On 27-03-2012 16:14, agentzh wrote:

> > 
> 
> Oh, then we need a library named lua-resty-http then 🙂 Just check  
> out  
> how lua-resty-memcached and lua-resty-redis are implemented.

Can I use

> **[LuaSocket: Network support for the Lua language](https://w3.impa.br/~diego/software/luasocket/)**
>
> The LuaSocket Homepage

or is this blocking, I think so?!

br Aleks
