unluac-rs

Online Lua Decompiler

Lua bytecode, made readable. For Lua 5.1–5.5, LuaJIT and Luau.

A Lua decompiler for your browser and your tools

unluac-rs is a free, open-source Lua bytecode decompiler written in Rust. It reconstructs readable Lua source from compiled chunks and supports Lua 5.1, 5.2, 5.3, 5.4, 5.5, LuaJIT 2.1 and Luau.

Use the online workspace to inspect bytecode, edit recovered source, and explore functions, constants and control-flow graphs. You can also decompile locally with the CLI, or integrate the Rust and JavaScript libraries into your own tools.

Choose how you work

Online workspace

Open a compiled file or folder in this page. The WebAssembly engine processes it on your device, without uploading the file to a server. Each file keeps its own Lua dialect.

Command-line decompiler

Download a CLI binary for Windows, macOS or Linux and decompile files offline.

unluac-cli -i sample.luac -o recovered.lua

Questions about Lua decompilation

Which files can I decompile?

Open compiled bytecode from a supported Lua version or dialect. Files may use .luac, .out, .lua or any other extension: detection uses the file contents. Ordinary source files can also be opened for reading and editing.

Are my files uploaded?

No. Decompilation and structural analysis run locally in your browser using WebAssembly. The browser stores original file bytes and dialect choices for your next visit. Download manual edits before leaving or reloading the page.

Can I recover the exact original source?

Decompilation reconstructs program structure; it cannot recover comments or information discarded during compilation. Available debug information can help recover names. The project is still in testing, and unsupported constructs or bugs can affect the output. Review generated code and report reproducible problems.

How do I report a decompilation problem?

Open a GitHub issue with a reproducible sample, the Lua version, options used, and expected versus actual behavior. Include the original source when available. Code, documentation and test cases are welcome.

Released under the MIT License. View the source on GitHub.