Fast Lua runtime written in Rust
32 comments
·November 24, 2025mwkaufma
Misleading use of the term "runtime" as it does not implement lua, but just links nonrust implementations into a webserver "runtime."
gpm
That's exactly how the term runtime is consistently used in the JS world... not sure it's misleading at all. Certainly less exciting/ambitious than if the interpreter was also rewritten, but its what it says on the tin as I understand the words.
creata
Yep. Specifically, the crate uses mlua: https://github.com/ArkForgeLabs/Astra/blob/f812bb0dc2881d740...
null
anentropic
Light-mode CSS is broken https://astra.arkforge.net/docs/latest/internals/structure.h...
(looks as if `code` words are redacted LOL)
joshlk
The top claim is that it's "Incredibly Fast" but I can't find any performance benchmarks. Can anyone find a link?
johnisgood
How does it compare to LuaJIT? LuaJIT is super performant, that I know.
benwilber0
Looks neat. I built a programmable server for Server-Sent Events using a similar stack (Rust/mlua/axum) [1]. I think the Rust/Lua interop story is pretty good.
fullstop
I transpiled Lua into wasm so that I can run in a browser. It has very little practical purpose, but I thought that it was kind of cool.
nhatcher
I don't know I think it could be useful. I did this a while ago:
https://github.com/nhatcher/ariana-lua
But next time I think I would like to have a language that compiles in the browser to wasm
VWWHFSfQ
Correct me if I'm wrong, but it looks like this is using the mlua Rust bindings (which are excellent). It's not a Lua runtime from-scratch in Rust. It's the regular C Lua/LuaJIT with a Rust interface.
vrighter
You're thinking of the interpreter, not the runtime. The runtime is libraries, not the interpreter. The async-io frameworks and stuff like that. Just like how node.js is a javascript runtime, it uses the V8 engine, and bun is also a javascript runtime that uses javascriptcore instead. Neither one of them wrote their own javascript interpreter.
Lerc
I think of the runtime as the whole execution stack. The interpreter, engine, JIT etc. is the back end. The interface to the world is a wrapper around that.
I would describe this as a Lua wrapper written in Rust. That carries the clear indication that you should not expect the interpreter to be written in Rust.
I would be (and indeed was) disappointed to see that this 'Lua runtime' did not have a Rust implementation of Lua. I would be much more interested in seeing that than a wrapper.
bcardarella
"written in Rust"
ok
phplovesong
[flagged]
sensen
I don't see any reference to `0xiDizEd` in the docs or on github. Are you sure that you're discussing the right project?
andsoitis
100% of Lua?
vrighter
It's a runtime, not a lua interpreter/jit.
The first sentence in its readme is the following: "Astra is a web server runtime for Lua (5.1-5.4), Luau and LuaJIT written in Rust with native support for Teal."
debugnik
The interpreter/jit has traditionally considered been part of a dynamic language runtime, arguably most of it, before JS-brained companies started to call their every repackaging of V8/JSC a runtime (which is technically correct but only considering part of them is off-the-shelf).
andsoitis
> It's a runtime, not a lua interpreter/jit.
Would you say the Lua interpreter is also a Lua runtime?
vrighter
the lua interpreter by itself is similar in scope to freestanding c. You can do anything, but you have to do everything. Lua doesn't come with much. Just some very basic file io (not even including listing files). Stuff that embeds lua is supposed to provide a runtime for lua programs to actually interact with.
null
nalekberov
[flagged]
phplovesong
This would be a best seller. HN without Rust and AI, thats the golden braid.
slightwinder
As I remember, you can just use ublock origin and some cosmetic filter with :has-text() or something.
null
nalekberov
[flagged]
Lerc
Or it could be that you posted an insubstansive comment that added little to the conversation. I don't use Rust. I certainly don't advocate for it, but I don't mind seeing posts about things people have done in Rust. I also don't use Lisp or Forth. I'd be quite interested to see people posting new projects that do real world things with those. Seeing languages being used helps you see what tools are the right ones for the job.
nalekberov
I have no problem with people's choices, but when I keep seeing AI and 'written in Rust' left and right it certainly gets on my nerves.
And I certainly don't like people using downvoting as a weapon, this is especially true here on HN.
Aurornis
If you’re not interested, don’t click it. But please don’t come to the comment section and write multiple comments complaining about its existence.
nalekberov
[flagged]
As others have noted, this is not actually a Lua engine written in Rust. It is a wrapper over existing C/C++ implementations of Lua. There is, however, an actual Lua engine written in Rust. It is called piccolo.[0]
[0] https://github.com/kyren/piccolo