Browse docs

Compiling to an Executable

lde compile produces a standalone native executable that bundles your Lua code, all dependencies, and the LuaJIT runtime into a single binary. Users need no Lua installation to run it.

How it works

lde builds and installs your dependencies, then walks ./target/ collecting every .lua file and every native shared library (.so / .dll / .dylib). Lua files are embedded as preloaded modules. Native libraries are packed into the binary and extracted to a temporary directory at runtime, then resolved via package.preload. The binary includes the LDE runtime (LuaJIT) and is not compatible with standard Lua. See Requirements for compiler prerequisites.

Basic usage

lde compile

Outputs <name> (or <name>.exe on Windows) in your project root.

Custom output path

lde compile --outfile dist/myapp

On Windows .exe is appended automatically if not already present.

Native modules

Shared libraries built by a build.lua script are automatically included. See C Module Support for how to produce them.

On Linux the binary exports LuaJIT symbols so native modules don’t require a separate Lua installation. On Windows you may need to bundle a Lua shared library alongside your executable.