← Software

Lua

A small, embeddable scripting language.

Lua logo

Lua is a small scripting language designed to be embedded in host applications. The reference interpreter is just a few hundred kilobytes when compiled, has no external dependencies beyond ANSI C, and exposes a famously clean C API for adding host-specific types and functions. The language itself favours a small core (prototype-based objects, a single composite type called the table, lexical scoping with closures, coroutines for cooperative multitasking) plus a tiny standard library, on the theory that each embedding will provide its own domain-specific bindings.

Lua was created at PUC-Rio in Brazil in 1993 by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, and Waldemar Celes, originally to extend a petroleum-company configuration tool beyond what Tcl could comfortably do. The current major version is 5.4, and a separate fork called LuaJIT provides a high- performance just-in-time compiler that is in the same league as modern V8 or HotSpot for some workloads.

Many programs embed Lua as their scripting interface: Neovim, NGINX (via the OpenResty distribution), the Awesome window manager, the Wireshark dissector framework, the World of Warcraft client, Garry's Mod, Roblox, the Adobe Lightroom plugin host, and tens of thousands of Linux games via the LÖVE 2D engine. The combination of a tiny footprint, a permissive MIT licence, and easy C interop has kept Lua popular as the "glue" layer for over thirty years.

License: MIT

Category: Language

Website: https://www.lua.org/

Install

Debian/Ubuntu: sudo apt install lua5.4
Fedora/RHEL:   sudo dnf install lua
Arch:          sudo pacman -S lua
macOS:         brew install lua

Authors

  • Roberto Ierusalimschy and the PUC-Rio Lua team
PreviousLogseq NextLXQt

This site is currently in Beta. Contact: Chris Paton

Textbook of AI · Textbook of Usability · Textbook of Digital Health

Auckland Maths and Science Tutoring