Lua
Scripting family · 1993Actively developedA small, embeddable language for extending larger applications.
Procedural · Functional
Links
- Homepage
- https://www.lua.org/
- Reference / standard
- https://www.lua.org/manual/5.5/
- Mailing list
- https://www.lua.org/lua-l.html
- Wikipedia (English)
- https://en.wikipedia.org/wiki/Lua
Tracked release
- Version
- 5.5.1
- Artifact
- Reference implementation
- Published
- 2026-07-24
- Source checked
- 2026-10-22
Use & ecosystem
- Suited for
- Games, CLI tools / automation
- Family / tradition
- Dynamic scripting
- Maturity
- Established
- Ecosystem breadth
- Focused
A stable language and sustained independent use in games and embedded application scripting support Established. Its focused integration ecosystem is not equivalent to a broad standalone application stack.
Industry & practical use
Lua is established as an embedded scripting and configuration language in games and applications. The Lua project documents uses in products such as World of Warcraft and Lightroom. Its main attraction is integration into a host application, rather than a comprehensive standalone application framework.
Compilers, libraries & tooling
The reference implementation is compact portable C with a C API for embedding. Its standard library is deliberately small; application capabilities often come from the host. LuaJIT is a separate implementation, and compatibility with newer Lua language versions must be checked rather than assumed.
Platforms & deployment
- General toolchains
- Linux, Windows, macOS
- Specialized tooling
- None catalogued
- Native cross-compilation
- Not the usual deployment model
The portable C implementation runs on Linux, Windows and macOS and can be embedded on other systems. The current platform filter records those general-purpose targets; it does not imply that every host application exposes Lua or that all constrained devices can accommodate its runtime.
Lua scripts normally execute in an interpreter or an embedded runtime. A C toolchain can cross-build that runtime and its host application; this is different from compiling arbitrary Lua programs directly into native target binaries.
Project health & support
Lua is maintained by a small team at PUC-Rio’s LabLua, with a long-running user community and industrial adoption. This is a different support model from a large vendor-led platform: host applications and commercial users often own their integration, upgrades and support arrangements.
Use, ecosystem & platform assessment reviewed 2026-10-22 · Sources below
History & origin
Lua was created in 1993 by a team at PUC-Rio in Brazil. Designed for embedding in applications, it combines a small implementation with flexible tables, first-class functions and a C API. It is widely used for scripting and configuration.
- Creators
- Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes, PUC-Rio
- Origin
- 1993 — First public appearance; earlier development is noted below.
Influences & descendants
Influenced by
- Not yet documented in this catalogue.
Influenced in this catalogue
- No linked entries yet.
Language features
- Typing
- Dynamic
- Execution
- Bytecode VM, JIT
- Block structure
- Explicit delimiters
- Semicolons
- Optional
- Lexical closures
- Yes
- Namespaced modules
- Partial
- Pattern matching
- No
- Macro system
- No built-in macro system
Implementation notes
- The reference implementation interprets bytecode. LuaJIT is an independent implementation with a different language-version baseline.
- Modules commonly use tables as namespaces rather than dedicated namespace syntax.
- String pattern matching is not structural language-level pattern matching.
Sources & references
- Language reference
- https://www.lua.org/manual/5.5/
- History and background
- https://www.lua.org/about.html
Use, ecosystem & platform sources
- Uses, implementation and maintenance
- https://www.lua.org/about.html
- Reference manual and C API
- https://www.lua.org/manual/5.4/
- Implementation compatibility
- https://luajit.org/status.html
See the classification definitions for implementation-dependent features. Influence links cover the entries documented here.