piccolo is a Lua interpreter written in Rust focused on safe sandboxing using gc-arena for garbage collection. The unique “stackless” design allows for safe cancellation and pre-emptive concurrency in the interpreter. The history of piccolo reveals the challenges of creating high-performance VMs in Rust, especially with proper garbage collection. The author’s passion for Lua and desire to create a natural Rust-embedded language with true garbage collection drove the creation of piccolo. Despite some limitations and rough edges, piccolo offers interesting and unique features that differentiate it from other Rust runtimes. The author’s goal is not to replace existing Lua runtimes but to highlight what makes piccolo special.
https://kyju.org/blog/piccolo-a-stackless-lua-interpreter/