Frameworks#

Lua is small by design and most often shows up embedded in another program. Its frameworks fall into two camps: things that embed Lua (game engines, nginx, Neovim) and things written in Lua to extend those hosts.

Game Engines (with Lua scripting)#

Web#

  • OpenResty , nginx + LuaJIT; a high-performance application server.

  • Lapis , web framework atop OpenResty.

  • Sailor , MVC-style framework (less active).

  • Pegasus, minimal HTTP server.

  • LuaSocket, the foundation for sockets in Lua.

Editors / IDEs#

  • Neovim , init.lua configuration; full Lua plugin API.

  • Lapce, lite-xl, Lua-driven editors.

A huge fraction of “Lua frameworks” in 2026 are actually Neovim plugin ecosystems.

Testing#

Standard / Utility Libraries#

Concurrency#

Database#

  • LuaSQL, generic database driver.

  • pgmoon , pure-Lua Postgres driver, popular with OpenResty.

  • redis-lua, Redis client.

  • Tarantool , in-memory database with Lua as the application server language.

ML / Numerical (Historical)#

  • Torch was a major Lua-driven scientific computing framework; superseded by PyTorch and now mostly retired.

Why Lua Frameworks Are Few#

Lua’s role (a small, embeddable language) means most “Lua development” happens inside another program’s plugin system. The framework you’re using is usually the host (Roblox, Neovim, OpenResty, LÖVE), and the libraries you reach for are the ones it ships or sanctions.