Skip to content

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_dardo or lua_dardo_plus to Luax — package and import changes plus notes on new APIs.

Project layout

The Luax repo is organized around a few key entry points:

Entry pointPurpose
package:luax/lua.dartThe main runtime API — LuaState, stack operations, async calls, events
package:luax/lua_parser.dartParser & AST surface for static analysis tooling
package:luax/debug.dartDebug utilities (e.g. LuaState.printStack())
package:flutter_luax/flutter_lua.dartFlutter 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.