網絡服務開發框架:aLiLua

jopen 10年前發布 | 14K 次閱讀 aLiLua 網絡工具包

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.baiduhome.net/lib/view/home/1399880899551

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!