← All languages

Lua

Scripting family · 1993Actively developed

A small, embeddable language for extending larger applications.

Procedural · Functional

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
https://www.lua.org/download.html

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.