Mlua works for many use cases but is a wrapper around the C code, so you need to bundle C as part of the build. So this is worse for cross compilation and makes it so you can't easily use mlua projects in wasm32-unkown-unknown. An example is that it would be hard to run a game in the browser that exposes Lua scripting with mlua.
The other reason is that because mlua is just a wrapper around the C code, it has unsafe you can't really get around. So for example Lua is used in Redis, which has this critical CVE https://github.com/redis/redis/security/advisories/GHSA-4789... that a memory safe version of Lua wouldn't have to deal with.
Mlua is still fine or even better for many other cases though!
The WASM thing makes sense. Do you need unknown-unknown? Seems like support exists for emscripten and wasi: https://github.com/mlua-rs/mlua/issues/366
It just seems like a lot of hassle to write a lua interpreter, although it would be nice to see a high quality one in Rust :)
Hematita was promising, but looks abandoned.
Yeah an example is that currently you can't build Bevy games in the browser with scripting in Lua, so I've gotten a little traction there.
And yes it seems like there has been many attempts to get a solid Rust Lua over the years and most never reached parity so hoping some people can find use case for it! This one is at full parity in terms of behavior and performance is getting to within striking distance.
Best of luck! We used mlua at $JOB for scripting support, and it worked great, but we’d have preferred a pure rust solution if one existed with the right performance profile