Wednesday, May 30, 2012

What web server to use for Lua web development

What web server (and why) should I use for Lua web development?

Source: Tips4all


  1. There are a few Lua-based webservers around:

    Xavante seems to be the most popular.
    Haserl is nice and small.
    Nanoki is not strictly a webserver, but a nice small pure Lua wiki engine worth studying. As for the Lua wikies, there is also Sputnik, which is fully featured and very flexible, but is a bit on the slow side.
    There is mod_lua (ex mod_wombat) if you prefer Apache. Looks like it would make it into the next Apache distribution as a core module.
    Note that it is not so hard to write a FastCGI Lua module.
    There is also Luv Lua MVC web-framework project (GitHub page). It is not mature yet, but may contain some interesting insights.

    Update. Some more frameworks to check out:

    Luvit: (too node-like for my taste)
    ngx_lua module for nginx:
    TIR for mongrel2:

  2. We've been working on the ngx_lua module for nginx, which supports 100% non-blocking network traffic to mysql, PostgreSQL, memcached, other http services, and more, hence outstanding concurrency level and over-all performance :)

    and we're using it in production :)

  3. The best web server I can think for lua web development is mongrel2. Take a look on TIR framework, which, IMHO, is the best lua use for web development these days.

  4. For development, it can be handy to run a small test server. A good candidate in particular for Lua web development is the Xavante server which is part of the Kepler project. Aside from some of the supporting Kepler modules , Xavante itself is written in pure Lua.

    For production, the new mod_lua (which had been known as mod_wombat before the Apache team accepted it into the core set of modules) running on Apache would seem to be a well-respected choice.

  5. there is as well the LuCI project [1]. which is the LuaConfigurationInterface, the web based mangement frontend for OpenWRT (embedded Linux).

    The LuCI guys wrote also a very small webserver, called lucittpd.
    LuCI is an MVC as well.
    And in production state ;)