网络服务开发框架:aLiLua

jopen 10年前

LiLua 是一套基于 epoll/kqueue/Lua 构建的网络服务开发框架
aLiLua 使用 epoll 进行网络/文件IO事件读写,对Lua协程进行调度,其性能高效并且简单
Lua 语言就像 PHP 那么简单容易理解。

Lua 语言

Lua是一种轻量语言,它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程式里。和许多"大而全"的语言不一样,网路通讯、图形界面等都没有默认提供。但是Lua可以很容易地被扩展:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。事实上,现在已经有很多成熟的扩展模块可供选用。

Lua是一个动态弱类型语言,支援增量式垃圾收集策略。有内建的,与操作系统无关的协作式多线程(coroutine)支援。

aLiLua 核心通过 epoll 处理异步IO事件,并引入 Lua 语言用于业务逻辑处理。aLiLua 的事件核心可非常高效的调度多个 Lua 协程,使之协同工作以实现高并发的网络服务。

    local db = mysql:new()      local db_ok, err, errno, sqlstate = db:connect({      host = "localhost",      port = 3306,      pool_size = 256,      database = "db",      user = "user",      password = "***"})      if not db_ok then      header('HTTP/1.1 503 ServerError')      die('MySQL Connection Error.')      end             local res, err, errno, sqlstate = db:query("SELECT * FROM t1 LIMIT 1")      if not res then      echo("bad result: ", err, ": ", errno, ": ", sqlstate, ".")      else      echo("result: ", json_encode(res)..'\n')      end

项目主页:http://www.open-open.com/lib/view/home/1399880899551