Node.js的lua?

我一直在玩node.js(nodejs)过去的一天,这是太棒了。 据我所知,lua没有类似libev和libio的集成,这使得我们几乎可以避免任何阻塞调用,并以asynchronous的方式与networking和文件系统交互。

我正在慢慢地将我的java实现移植到nodejs,但是我感到震惊的是luajit比v8 JavaScript要快得多,而且使用的内存要less得多!

我想象在这样一个环境(非常快速和响应,非常低的内存使用率,很有performance力)写我的服务器将提高我的项目immensly。

对卢亚来说,我不确定这样的事情是否存在。 我会欣赏任何指针。

谢谢

请参阅lualibevent和lua-ev以及Lua Gem#27

最近的一个相应的项目是Luvit “(Lua + libUV + jIT = pure awesomesauce)”。

从公告 :

这基本上是luajit2 + libuv(nodejs后面的事件循环库)。 它像nodejs一样编译为单个可执行文件,并且可以运行.lua文件。 是什么使它不同于股票luajit分布是它添加了几个内置模块和一些稍微不同的语义。

请注意,我们没有像Apache的CGI脚本那样运行。 lua脚本 http服务器。 每次向服务器发出http请求时,都会调用callback函数。

看起来像以下是我正在寻找:LuaNode https://github.com/ignacio/LuaNode

你也可以看看luv:

https://github.com/richardhundt/luv

来自lua邮件列表:

luv如何与Luvit相关?LuaJIT + libuv(Node.js:s / JavaScript / Lua /)?

它不是真的。 Luvit从node.js的体系结构(反应器callback等)中大量借用,与luajit静态链接,提供了自己的模块系统和可执行文件。 Luv只是一个绑定到libuv的Lua模块。 关键的区别在于Luv更像是一个mn线程引擎,结合了协程和操作系统线程,同时使用libuv事件循环。

所以除了它们都与libuv绑定的事实之外,它们没有太多共同之处。

你可能想看Lua Github网站上的Luvit或gander。 我认为这需要在Lua中实现Node.jsfunction的方法。 你在客户端和服务器端编写Lua代码。 下面是在Lua中使用Luvit实现Node.jsfunction的方法的描述。

如果我明白了这个问题,请看http://openresty.com/

luvit的目标是到Lua究竟是什么Node.js到Javascript。 绝对是一个有前途的项目。

你可以通过lua处理程序获得node.js风格的非阻塞IO。

它甚至有一个asynchronous。 HTTP客户端,这使得启动并行HTTP请求变得非常容易。 请参阅test_http_client.lua文件作为HTTP客户端界面的示例。

你还应该看看青金石。 这是OpenResty的一个非常轻量级和快速的框架: http ://leafo.net/lapis/

我真的很喜欢它,并预测它将有一个光明的未来!

正如你所期望的,任何可以利用OpenResty构build的东西,基准testing都是非常好的: https ://www.techempower.com/benchmarks/#section=data-r12&hw=peak&test=query

Lapis的作者也为Lua写了一个类似CoffeeScript的语言,称为MoonScript,这个语言相当不错: http ://moonscript.org/