The modernpackage managerfor Lua & Luau.

Lux is a fast, reproducible package manager for the Lua ecosystem. Build, lint, test and ship projects with zero friction. We're bringing Lua to the modern era.

~/lua-projectlx
lx new lua-projectCreated lua-project/lux.tomlcd lua-project && lx add luassertInstalled 2 packages in 403mslx check && lx testAll checks passed2 specs, 0 failures

Installation

Cargo

cargo binstall lux-cli --locked

Arch Linux

pacman -S lux-cli

Nix

nix profile install github:lumen-oss/lux#lux-cli

The flake also exposes lux-lsp and lux-lua.

Binaries

GitHub Releases

AppImage, .deb, macOS, and Windows builds.

Lux stands for Luxury.

Lux unites the Lua ecosystem under one model, a comfortable CLI and powerful toolchain.

Declare once, build anywhere.

Create projects with a lux.toml file while lux keeps the dependency chain reproducible.

  • Manage dependencies with ergonomic CLI commands.
  • Supports git dependencies and local packages.
  • Native support for build and test dependencies.
  • Supports rockspec files for compatibility.

Builds that understand your machine.

Fed up with managing Lua installations yourself? Lux finds the right Lua runtime, the right headers and the right package loader - never worry about it again.

  • Parallel builds and installs with per-project runtime versions.
  • Lua 5.1 - 5.5, LuaJIT and Luau headers detected and installed automatically.
  • pkg-config detection for C dependencies

One project, one toolchain.

Formatting, linting, type-checking, testing - all built in. Lux generates the .luarc.json so your editor works out of the box with everything.

  • Replaces manual calls to busted, luacheck and stylua.
  • Ensures tool settings are shared across developers.
  • Integrates rich text editor support by default.

Ship to clients or to developers.

Pack a project into a static binary that runs on any machine, or push to luarocks.org so others can install it with a single command.

  • Static binaries for Linux, macOS, and Windows.
  • Runs even if the host doesn't have Lua installed.

That's not all.

Lux is a swiss-army knife for all things Lua.

Ecosystem Compatibility

Lux reads rockspecs and speaks the Luarocks ecosystem's language. For packages with custom build backends luarocks is automatically installed, configured and used as a compatibility layer.

Embeddable

Both in Rust and directly in Lua. Lux can be wrapped and adapted to any use case.

Native Luau Support

Need Rojo or Wally support? It's all right here, well-supported and ready.

Workspaces

Supports scalable software by allowing multiple projects to sit in a single namespace.

Reproducible by default

The lockfile records integrity hashes. Vendors sources when a build has to work offline.

First-class Neovim support

Generates Neovim-compatible package directories. Pass a single flag and use Lux as your Neovim package manager.