今天休息来观光又一个框架
觉得Merb的讲解,如果能吸取Lua语言的Kepler项目的一些思想,那么实为我国Ruby应用之幸事,同为动态敏捷语言,Lua并没有向一些Rubyist所想象的那样已经过去,请看看下面的内容,你会觉得惊奇:
Kepler是一个简单且轻量的Web开发平台(但这并不意味着只能用它来开发简单的应用),支持用Lua撰写Web程序,因此相当易学易用,并且能较方便地应用在一些资源受限的系统中。由于使用ANSI C和Lua进行开发,所以它能移植到任何支持ANSI C的平台上。
Kepler由多个Lua扩展库组成,包括CGILua、LuaSocket、LuaFileSystem、Copas、LuaSQL、 LuaLDAP、LuaExpat、LuaXMLRPC、LuaSOAP、LuaZip、Xavante等,它们可大致分为核心库和功能支撑库两部分。其中核心是CGILua和LuaSocket,后者负责TCP/UDP sockets的操作,前者则可以创建动态页面并处理web表单上的输入数据。Kepler通过CGILua起动器(launcher)使得Web服务器能执行CGILua和Web程序并与之通信。目前的版本已经包括适合CGI、FastCGI、Apache、IIS、Tomcat、Zope的 CGILua起动器,因此用Lua开发的Web程序可以在这些种类的服务器中自由迁移,只要同时安装上对应的CGILua起动器。
LuaFileSystem是对标准Lua库中文件读写功能的补充,它提供了一种可移植的方法来访问系统的目录结构和文件属性。Copas则是一个基于协程的服务调度器。Xavante是一个用Lua开发的支持HTTP 1.1的Web服务器,它直接支持CGILua而无需起动器。
其它的组件提供了SQL数据库访问、XML解析、LDAP、SOAP、XMLRPC、ZIP文件操作等功能,用户如果只需要其中的某些功能,可以抽出相关组件(及其所依赖的组件)来使用。
事实上你如果再用LuaJIT的话:
Lua非常高效,它运行得比许多其它脚本(如Perl、Python、Ruby)都快,这点在第三方的独立测评中得到了证实。尽管如此,仍然会有人不满足,他们总觉得“嗯,还不够快!”。LuaJIT就是一个为了再榨出一点速度的尝试,它利用JIT编译技术把Lua代码编译成本地机器码后交由 CPU直接执行。LuaJIT测评报告表明,在浮点运算、循环和协程的切换等方面它的加速效果比较显著,但如果程序大量依赖C编写的函数,那么运行速度便不会有什么改进。目前LuaJIT只支持X86 CPU。
LuaJIT中包括一个名为Coco的库,用户可以单独使用它。Coco为C函数提供了真正的协程能力,用户能在C函数内部的任何一点将协程挂起,然后在将来用协程恢复操作返回到那一点。在标准Lua中,协程的挂起与恢复是不允许跨越C函数调用边界的。Coco使用了一些依赖于特定系统的特性,因此在移植程序时要特别注意。
综上所述:应用Kepler项目构造的敏捷应用由于有正真的协程,因此将来的Kepler框架也许更为壮观,当然目前从综合性能上看:还是Ruby较好! 但Ruby一直到 1.9 版本才有协程.
为了给初学者有一个入门,我免费给大家提供一个luajava学习环境:
[ 本帖最后由 quzhongwei 于 2008-6-14 14:51 编辑 ]
附件: 您所在的用户组无法下载或查看附件
搜索更多相关主题的帖子:
ruby lua kepler luajit