
OmniLua - Rust implementation of Lua 5.1 - 5.5 targeting web use and sandboxing
[Github here] (https://github.com/ianm199/omnilua/tree/main)
I've been working on OmniLua for a bit now - it builds one binary that can run Lua 5.1 - 5.5 from one binary.
The main motivation for this was there seemed to be a gap for game development in the Rust community where mlua cannot be run in the browser, so games built in engines like bevy can't compile to wasm32-unknown-unknown.
There is some other benefits - like being able to easily use Lua in Cloudflare workers or in "playground" developer tools.
Highlights:
- Targets 100% conformance to reference Lua for all 5 versions
- Can run LuaRocks and install Lua only packages
- Performance is slower than C Lua 5.4.7 but within ~40% on standard benchmarks. Performance chart here
- API is 100% compatibile with mlua
Try it:
cargo install omnilua-cli
export OMNILUA_VERSION=5.5
omnilua -e 'print("hello")'
omnilua # opens repl
I used AI heavily to develop this I wouldn't consider it "vibecoded" however.