LuaJIT tries to keep the spirit of Lua — it's light-weight, efficient and extensible.


All functions are by default compiled Just-In-Time (JIT) to machine code:

Ahead-Of-Time (AOT) compilation (at runtime) is supported, too:

The JIT compiler is extensible:


The compiled machine code is very efficient:

The JIT compiler is very fast:

LuaJIT is very small:


LuaJIT is designed to be fully compatible with Lua 5.1. It accepts the same source code and/or precompiled bytecode. It supports all standard language semantics. In particular:

Some minor differences are related to debugging:

* There is not much I can do to improve this situation without undue complications. A suggestion to modify the behaviour of standard Lua has been made on the mailing list (it would be beneficial there, too).