Skip to content(if available)orjump to list(if available)

Fast Lua runtime written in Rust

Fast Lua runtime written in Rust

32 comments

·November 24, 2025

csnover

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

mwkaufma

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.

null

[deleted]

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.

[1] https://github.com/benwilber/tinysse

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.

https://i.imgur.com/ErSNVoR.png

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

[deleted]

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

[deleted]

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]