# Nginx-perl 1.1.11.1

**URL:** <https://www.ruby-forum.com/t/nginx-perl-1-1-11-1/215125>\
**Category:** NGINX\
**Created:** [December 22, 2011, 8:33pm UTC](https://www.ruby-forum.com/t/nginx-perl-1-1-11-1/215125 "2011-12-22T20:33:36Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [December 22, 2011, 8:33pm UTC](https://www.ruby-forum.com/t/nginx-perl-1-1-11-1/215125/1 "2011-12-22T20:33:36Z")

</div>

Hello, everyone.

I’m happy to announce the first release of nginx-perl,  
version 1.1.11.1:

```
http://zzzcpan.github.com/nginx-perl/

```

Nginx-perl provides asynchronous functions for original  
embedded perl to resolve domain names, connect to external  
hosts, exchange data and most importantly respond to HTTP  
clients. Code sample can be found on the web page above.

Features

- full official nginx perl API
- asynchronous connections (ngx\_connector, ngx\_reader, ngx\_writer)
- timer (ngx\_timer)
- SSL (ngx\_ssl\_handshaker)
- resolver (ngx\_resolver)
- access handlers (perl\_access)
- app handlers (perl\_app)
- configuration level eval (perl\_eval)
- init\_worker, exit\_worker handlers (perl\_init\_worker,  
perl\_exit\_worker)
- logging functions (ngx\_log\_\*)
- client connection takeover for websockets, etc.

In many ways it is an actual asynchronous framework.

You can install it from sources manually with your favorite  
nginx addons:

```
% perl Makefile.PL --with-http_ssl_module
% make
% make test
% make install
  # or to try without installation
% ./objs/nginx-perl -p eg/helloworld

```

Or from CPAN:

```
% cpan Nginx::Perl

```

Documentation is far from perfect, but should be enough for  
people already familiar with embedded perl.

If you have a question, add an issue on github.

Github:  
[GitHub - zzzcpan/nginx-perl: Full-featured perl support for nginx](https://github.com/zzzcpan/nginx-perl)

---

<div class="post-metadata">

**Author:** ![Alexandr\_G](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ee59a6/32.png) [@Alexandr\_G](https://www.ruby-forum.com/u/Alexandr_G)\
**Post date:** [December 22, 2011, 10:56pm UTC](https://www.ruby-forum.com/t/nginx-perl-1-1-11-1/215125/2 "2011-12-22T22:56:27Z")

</div>

Hi,

Troll: Will the next version be numbered 1.1.11.1.1 ?

## :oP

_B. R._

---

<div class="post-metadata">

**Author:** ![Alexandr\_G](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ee59a6/32.png) [@Alexandr\_G](https://www.ruby-forum.com/u/Alexandr_G)\
**Post date:** [December 23, 2011, 2:36am UTC](https://www.ruby-forum.com/t/nginx-perl-1-1-11-1/215125/3 "2011-12-23T02:36:10Z")

</div>

On Thu, Dec 22, 2011 at 11:48 PM, B.R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Troll: Will the next version be numbered 1.1.11.1.1 ?

At least someone is interested 🙂

---

<div class="post-metadata">

**Author:** ![Alexandr\_G](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ee59a6/32.png) [@Alexandr\_G](https://www.ruby-forum.com/u/Alexandr_G)\
**Post date:** [December 23, 2011, 4:10am UTC](https://www.ruby-forum.com/t/nginx-perl-1-1-11-1/215125/4 "2011-12-23T04:10:25Z")

</div>

On Fri, Dec 23, 2011 at 3:33 AM, Alexandr G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> In many ways it is an actual asynchronous framework.

Thank you for your amazing work! 😃

BTW, is it possible to make it also a _synchronous_ but still  
nonblocking framework just like the ngx\_lua module’s cosocket  
mechanism based on the Nginx event model and Lua coroutines?

```
https://github.com/chaoslawful/lua-nginx-module/blob/cosocket/t/058-tcp-socket.t#L17

```

Many people hate the “callback nightmare” but still love to embrace C10K  
🙂

Thanks for your efforts!  
-agentzh

---

<div class="post-metadata">

**Author:** ![Alexandr\_G](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ee59a6/32.png) [@Alexandr\_G](https://www.ruby-forum.com/u/Alexandr_G)\
**Post date:** [December 23, 2011, 6:00am UTC](https://www.ruby-forum.com/t/nginx-perl-1-1-11-1/215125/5 "2011-12-23T06:00:45Z")

</div>

On 22.12.11 22:33, Alexandr G. wrote:

> I’m happy to announce the first release of nginx-perl,  
> Can you make some examples, use cases, etc. and include it in the future  
> documentation?

---

<div class="post-metadata">

**Author:** ![Alexandr\_G](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ee59a6/32.png) [@Alexandr\_G](https://www.ruby-forum.com/u/Alexandr_G)\
**Post date:** [December 23, 2011, 11:04am UTC](https://www.ruby-forum.com/t/nginx-perl-1-1-11-1/215125/6 "2011-12-23T11:04:15Z")

</div>

On 12/22/2011 08:33 PM, Alexandr G. wrote:

> - resolver (ngx\_resolver)
> - access handlers (perl\_access)
> - app handlers (perl\_app)
> - configuration level eval (perl\_eval)
> - init\_worker, exit\_worker handlers (perl\_init\_worker, perl\_exit\_worker)
> - logging functions (ngx\_log\_\*)
> - client connection takeover for websockets, etc.
> 
> In many ways it is an actual asynchronous framework.

Sounds hilarious!!!

AnyEvent::Impl::Nginx adapter for Nginx::Perl would really really great!

Best regards, Brane

---

<div class="post-metadata">

**Author:** ![Alexandr\_G](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ee59a6/32.png) [@Alexandr\_G](https://www.ruby-forum.com/u/Alexandr_G)\
**Post date:** [December 23, 2011, 12:03pm UTC](https://www.ruby-forum.com/t/nginx-perl-1-1-11-1/215125/7 "2011-12-23T12:03:36Z")

</div>

On 12/23/2011 04:10 AM, agentzh wrote:

> 

[https://github.com/chaoslawful/lua-nginx-module/blob/cosocket/t/058-tcp-socket.t#L17](https://github.com/chaoslawful/lua-nginx-module/blob/cosocket/t/058-tcp-socket.t#L17)

> Many people hate the “callback nightmare” but still love to embrace C10K 🙂

True, true 🙂

AnyEvent supports so called Coros, that’s why i’m so interested about  
anyevent support in Nginx::Perl implementation in AnyEvent 🙂

Best regards, Brane

---

<div class="post-metadata">

**Author:** ![Alexandr\_G](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ee59a6/32.png) [@Alexandr\_G](https://www.ruby-forum.com/u/Alexandr_G)\
**Post date:** [December 27, 2011, 5:07pm UTC](https://www.ruby-forum.com/t/nginx-perl-1-1-11-1/215125/8 "2011-12-27T17:07:04Z")

</div>

Hm… Am I only one who is confused by this project and did not find any  
good in having separate nginx tree to see couple more perl functions?

Why not to create/compile an XS that links itself properly to nginx.so  
and other libs? Why not to create add-on ngx\_http\_superperl module if  
you really want it your way?

Alex.

---

<div class="post-metadata">

**Author:** ![Alexandr\_G](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ee59a6/32.png) [@Alexandr\_G](https://www.ruby-forum.com/u/Alexandr_G)\
**Post date:** [December 27, 2011, 5:55pm UTC](https://www.ruby-forum.com/t/nginx-perl-1-1-11-1/215125/9 "2011-12-27T17:55:18Z")

</div>

On 12/27/11, Alex S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hm… Am I only one who is confused by this project and did not find any  
> good in having separate nginx tree to see couple more perl functions?
> 
> Why not to create/compile an XS that links itself properly to nginx.so  
> and other libs? Why not to create add-on ngx\_http\_superperl module if  
> you really want it your way?

I didn’t think that blindly applying patches from an add-on was a good  
idea. So I never even considered it.
