omniLua playground

every Lua, everywhere

One snippet. Five Luas. In your browser.

omniLua is one pure-Rust runtime for Lua 5.1, 5.2, 5.3, 5.4, and 5.5 — as a standalone interpreter, embedded in Rust, or in the browser. No C dependency, no unsafe FFI.

If your Rust program — or your game — ships a wasm build, a C-backed Lua binding can't follow it. omniLua is pure Rust: the same scripting runtime compiles natively and to wasm32-unknown-unknown, with no Emscripten and no toolchain gymnastics.

snippet.lua Cmd/Ctrl + Enter to run

All five columns are live. The shipped .wasm bundle carries every backend (5.1, 5.2, 5.3, 5.4, 5.5) in one module and selects the version per run, so each column executes your edited code on its own Lua version — no second download, no recompile. Before the runtime finishes loading, the columns briefly show verified reference output for the default snippet (captured from the official PUC-Rio binaries, tagged ref) and flip to live the instant the runtime is ready.

Examples

Curated snippets — one click loads each into the editor.

Get omniLua

Every Lua, everywhere — pure-Rust Lua 5.1–5.5, suite-passing, LuaRocks-compatible, wasm-ready.

Rust CLI
$ cargo install omnilua-cli
Embed in Rust
# omnilua = "0.1"
Browser / Node
$ npm install omnilua