Lua

LuaJIT is a Just-In-Time Compiler for the Lua* programming language.

LuaJIT is Copyright © 2005-2011 Mike Pall. LuaJIT is open source software, released under the » MIT license.

* Lua is a powerful, dynamic and light-weight programming language designed for extending applications. Lua is also frequently used as a general-purpose, stand-alone language. More information about Lua can be found at: » http://www.lua.org/

Compatibility

LuaJIT implements the full set of language features defined by Lua 5.1. The virtual machine (VM) is API- and ABI-compatible to the standard Lua interpreter and can be deployed as a drop-in replacement.

LuaJIT offers more performance, at the expense of portability. It currently runs on all popular operating systems based on x86 or x64 CPUs (Linux, Windows, OSX etc.) or embedded systems based on ARM (Android, iOS) or PPC CPUs. Other platforms will be supported in the future, based on user demand and sponsoring.

Overview

LuaJIT has been successfully used as a scripting middleware in games, 3D modellers, numerical simulations, trading platforms and many other specialty applications. It combines high flexibility with high performance and an unmatched low memory footprint: less than 125K for the VM plus less than 85K for the JIT compiler (on x86).

LuaJIT has been in continuous development since 2005. It's widely considered to be one of the fastest dynamic language implementations. It has outperformed other dynamic languages on many cross-language benchmarks since its first release — often by a substantial margin. In 2009 other dynamic language VMs started to catch up with the performance of LuaJIT 1.x. Well, I couldn't let that slide. ;-)

2009 also marks the first release of the long-awaited LuaJIT 2.0. The whole VM has been rewritten from the ground up and relentlessly optimized for performance. It combines a high-speed interpreter, written in assembler, with a state-of-the-art JIT compiler.

An innovative trace compiler is integrated with advanced, SSA-based optimizations and a highly tuned code generation backend. This allows a substantial reduction of the overhead associated with dynamic language features.

It's destined to break into the » performance range traditionally reserved for offline, static language compilers.

More ...

Click on the LuaJIT sub-topics in the navigation bar to learn more about LuaJIT.

Click on the Logo in the upper left corner to visit the LuaJIT project page on the web. All other links to online resources are marked with a '»'.