# Install lua with Homebrew

Powerful, lightweight programming language. Version 5.5.0 via Homebrew; verified 2026-06-19.

## Install

```sh
sudo av install brew:lua
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install lua
```

  Evidence: provider-native install command

## Package facts

- **Package key:** brew:lua
- **Package manager:** Homebrew
- **Version:** 5.5.0
- **Source summary:** Powerful, lightweight programming language
- **Homepage:** <https://www.lua.org/>
- **Last updated:** 2026-06-19T12:31:49-07:00
- **Generated:** 2026-08-03T00:40:33+00:00

## Executables

- lua (alias)
- lua-5.5 (alias)
- lua5.5 (alias)
- luac (alias)
- luac-5.5 (alias)
- luac5.5 (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 5.5.0
## Project history and usage

Lua is a lightweight, embeddable scripting language developed at PUC-Rio in Brazil. The Homebrew lua package represents the mainline Lua runtime and compiler, exposing the lua interpreter and luac compiler for interactive use, scripting, embedding, and bytecode compilation.

### Project history

Lua was created in 1993 at PUC-Rio as an extension and configuration language. Official Lua history material frames its evolution from a simple in-house configuration language into a widely used embeddable language with tables, lexical scoping, closures, coroutines, and a small portable C implementation.

The official reference manual emphasizes Lua's dual identity: it is both a standalone interpreter and a library designed to be embedded in host programs. This design made Lua attractive for applications that wanted scripting without carrying a large runtime. The distribution is source-first, written in clean C, and builds on common Unix-like platforms with a small Makefile-driven process.

Lua 5.x shaped the package-manager era of Lua. Lua 5.1 became historically important because LuaJIT targets the 5.1 language family; Lua 5.2, 5.3, 5.4, and 5.5 continued the standard interpreter line with API and virtual-machine changes. The official version history records Lua 5.5.0 released on 22 Dec 2025 with global-variable declarations, named vararg tables, more compact arrays, and incremental major garbage collections.

### Adoption history

Lua's adoption has been driven by embedding. The official manual describes using C functions to extend Lua into domain-specific languages, and the official readme says Lua is used in many products and projects around the world. Its small C implementation made it popular in games, applications, embedded systems, network software, and tools that need a scripting layer.

Package managers package Lua both as a current interpreter and as versioned formulas because ABI and language-version differences matter. The supplied package-manager facts show broad distribution across Homebrew, apk, Chocolatey, dnf, MacPorts, Nix, pacman, Scoop, winget, and zypper, while separate packages such as lua@5.4 preserve older minor series for applications and libraries that cannot jump runtime versions.

### How it is used

Users run lua for interactive or batch scripts, run luac to compile Lua chunks, or embed liblua in a host application. Lua programs often use LuaRocks or distribution packages for modules, but the core runtime itself does not use a project-level config file or credentials file.

For packagers, the important usage detail is that different Lua minor versions are not ABI compatible. The official version history states that different versions can have different APIs and virtual machines, so applications embedding Lua and C libraries for Lua must be rebuilt for a new version.

### Why package nerds care

Lua is a package-manager staple because it is simultaneously a user-facing scripting language, an embeddable C library, and the dependency underneath many other tools. Package nerds care about which minor series a formula installs, how executable names are versioned, whether luac is included, and how Lua modules find the matching runtime.

### Timeline

- 1993: Lua was born at PUC-Rio in Brazil.
- 2000: Lua 4.0 was released, closing the era covered by the first official HOPL history paper.
- 2015: Lua 5.3 introduced integers, bitwise operators, a basic UTF-8 library, and 32/64-bit support.
- 2020: Lua 5.4 introduced a new generational garbage collector mode and const/to-be-closed variables.
- 2025: Lua 5.5.0 was released with global-variable declarations and other language/runtime changes.

### Related projects

- LuaJIT is a major alternative implementation associated with Lua 5.1 compatibility.
- LuaRocks is the common Lua module package manager used alongside distribution Lua packages.
- LuaLS and Luacheck are developer tools in the Lua ecosystem that depend on Lua language semantics.
- PUC-Rio and Lua.org are the official institutional and project homes for the reference implementation.

### Sources

- <https://raw.githubusercontent.com/lua/lua/master/README.md>
- <https://www.lua.org/history.html>
- <https://www.lua.org/manual/5.5/manual.html>
- <https://www.lua.org/manual/5.5/readme.html>
- <https://www.lua.org/versions.html>
- source_facts.package-manager


## Security Notes

doc example: interpreter runtime.

- **Geiger risk:** yellow / high
- doc example: interpreter runtime


## Combined YAML source

View the package source record on GitHub. [combined/lua.yml](https://github.com/automic-vault/db/blob/main/combined/lua.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
