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

2 points

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.

permalink
report
reply
2 points

As a sysadmin Python is very far from a better language than Shell, it is much too fragile over time for that. You can’t even rely on a Python script running unmodified on the oldest currently supported OS versions and the latest ones.

permalink
report
parent
reply
2 points

There is a Python interpreter written in Rust. It’s apparently intended to (besides being fast an all that) make Rust scriptable.

permalink
report
reply
2 points

I’m aware that pyo3 is a thing, but last I checked that was just Rust bindings to CPython. Is this not that?

permalink
report
parent
reply
2 points
1 point

what the fuck

permalink
report
parent
reply
5 points

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.

permalink
report
reply
0 points

PreFix notation for mathematical operations. Hehe.
Interesting for me, but I’d rather not give this to someone who us more interested in making a plugin and calling it a day.

permalink
report
parent
reply
4 points

Crates.io has tags like scripting. It suggests languages like rhai, dyon, or rune.

permalink
report
reply
5 points

There’s a list of good options on Are We Game Yet, hope one of these crates is useful. https://arewegameyet.rs/ecosystem/scripting/

permalink
report
reply

Rust

!rust@programming.dev

Create post

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits
  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

Community stats

  • 505

    Monthly active users

  • 286

    Posts

  • 1.3K

    Comments