Luax Documentation
Welcome to the Luax documentation. Luax is a pure-Dart implementation of the Lua 5.3 virtual machine, with a garbage collector, async/await interop, an event system, exposed parser & AST, and full web platform support.
Where to next?
Getting Started
Install Luax, write your first Lua-in-Dart program, and run it on desktop, web, or Flutter.
Guide
Task-oriented guides covering Dart↔Lua interop, async/await, the event system, coroutines, garbage collection, the parser/AST, web and Flutter integration, and the full Luax architecture deep-dive.
Reference
API reference (auto-generated from
///dartdoc comments) and the standard library manual.Migration
Migrate from
lua_dardoorlua_dardo_plusto Luax — package and import changes plus notes on new APIs.
Project layout
The Luax repo is organized around a few key entry points:
| Entry point | Purpose |
|---|---|
package:luax/lua.dart | The main runtime API — LuaState, stack operations, async calls, events |
package:luax/lua_parser.dart | Parser & AST surface for static analysis tooling |
package:luax/debug.dart | Debug utilities (e.g. LuaState.printStack()) |
package:flutter_luax/flutter_lua.dart | Flutter widget bindings (separate package) |
The API reference under /api/ is generated from the /// dartdoc comments on these entry points. The guide pages under /guide/ are hand-written and live in this docs/ directory.
Contributing
See CONTRIBUTING.md on GitHub for the development workflow, branch conventions, and review process.