I want to allow the users of my project be able to write the driving logic, while I provide the tools. What are some embedded scripting languages in Rust that can be sandboxed and are easy for absolute beginners?
edit: Thanks for all of your answers, I decided to go with lua using mlua
Another meme answer: nu
.
I never actually used nu
for anything. But I’ve been thinking (unironically) that nu
with its built-in from_json
and to_json
can be interesting.
The use-case I had in mind is not games or anything like that, but some system or dev tools that traditionally utilized shell scripts, but are moving towards better languages like python. So I thought a single binary that embeds nu
, but also has a lot of sub-commands that implement a lot of sub-tasks in Rust directly, and with JSON used as an exchange format, the combination can be interesting.
Now that I think about it more, this can work in both directions, with main execution being in nu (what I had in mind), or in Rust.
nu
even has an lsp server, so the development experience should theoretically be good.
There is a Python interpreter written in Rust. It’s apparently intended to (besides being fast an all that) make Rust scriptable.
I’m aware that pyo3 is a thing, but last I checked that was just Rust bindings to CPython. Is this not that?
Would something like Steel work?
The Helix editor is working on adding it as a plugin scripting language. You could take a look at the in-progress fork to see how they’re doing it.
There’s a list of good options on Are We Game Yet, hope one of these crates is useful. https://arewegameyet.rs/ecosystem/scripting/