Lua

Lua is a lightweight, embeddable scripting language created at PUC-Rio, the Pontifical Catholic University of Rio de Janeiro in Brazil. The language’s own site states plainly that Lua was “created in 1993” and is “designed, implemented, and maintained by a team at PUC-Rio.” The original team was Roberto Ierusalimschy, Luiz Henrique de Figueiredo, and Waldemar Celes, who recount the full story in their paper “The Evolution of Lua.” The site describes Lua as “a powerful, efficient, lightweight, embeddable scripting language.”

Lua grew out of two earlier in-house languages at PUC-Rio, DEL and SOL, that the group built for engineering applications. As “The Evolution of Lua” recounts, the authors needed a single configuration and extension language that was simple, portable, and small enough to embed anywhere. International trade restrictions at the time made buying foreign software difficult, which pushed the group to build their own tools rather than license existing scripting languages.

The language is organized around one central data structure: the table. The Lua site notes that the language “combines simple procedural syntax with powerful data description constructs based on associative arrays.” Tables serve as Lua’s arrays, dictionaries, objects, and namespaces all at once, which keeps the core language tiny while remaining expressive. Functions are first-class values, and the runtime includes automatic memory management and coroutines for cooperative multitasking.

Embeddability is the trait that made Lua ubiquitous. The Lua Reference Manual devotes a major section to “The Application Program Interface,” the C API through which a host program creates a Lua state, exchanges values with Lua through a stack, and registers C functions as Lua callables. Because the whole interpreter is small, written in clean ANSI C, and easy to wire into another program, Lua became the embedded scripting layer of choice across the industry.

That design carried Lua into an enormous range of software. It is the scripting and modding language inside many video games, the configuration and extension language embedded in tools like Redis and the nginx web server, and a common choice wherever an application wants to be scriptable without shipping a heavy runtime. Lua stands alongside Tcl as a defining example of the small, embeddable scripting language.

Sources

Last verified June 8, 2026