rhai 0.19.7

Embedded scripting for Rust
Documentation

Rhai - embedded scripting for Rust

Rhai is a tiny, simple and fast embedded scripting language for Rust that gives you a safe and easy way to add scripting to your applications. It provides a familiar syntax based on JavaScript and Rust and a simple Rust interface. Here is a quick example.

First, the contents of my_script.rhai:

// Brute force factorial function
fn factorial(x) {
if x == 1 { return 1; }
x * factorial(x - 1)
}

// Calling an external function 'compute'
compute(factorial(10))

And the Rust part:

use rhai::{Engine, EvalAltResult, RegisterFn};

fn main() -> Result<(), Box<EvalAltResult>>
{
// Define external function
fn compute_something(x: i64) -> bool {
(x % 40) == 0
}

// Create scripting engine
let mut engine = Engine::new();

// Register external function as 'compute'
engine.register_fn("compute", compute_something);

#   #[cfg(not(feature = "no_std"))]
#   #[cfg(not(target_arch = "wasm32"))]
assert_eq!(
// Evaluate the script, expects a 'bool' return
engine.eval_file::<bool>("my_script.rhai".into())?,
true
);

Ok(())
}

Documentation

See The Rhai Book for details on the Rhai scripting engine and language.