Rhai - embedded scripting for Rust
Rhai is a tiny, simple and very 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
// Calling an external function 'compute'
compute
And the Rust part:
use ;
Optional features
| Feature | Description |
|---|---|
unchecked |
Exclude arithmetic checking (such as overflows and division by zero). Beware that a bad script may panic the entire system! |
no_function |
Disable script-defined functions if not needed. |
no_module |
Disable loading external modules if not needed. |
no_index |
Disable arrays and indexing features if not needed. |
no_object |
Disable support for custom types and objects. |
no_float |
Disable floating-point numbers and math if not needed. |
no_optimize |
Disable the script optimizer. |
only_i32 |
Set the system integer type to i32 and disable all other integer types. INT is set to i32. |
only_i64 |
Set the system integer type to i64 and disable all other integer types. INT is set to i64. |
no_std |
Build for no-std. Notice that additional dependencies will be pulled in to replace std features. |
sync |
Restrict all values types to those that are Send + Sync. Under this feature, Engine, Scope and [AST] are all Send + Sync. |
internals |
Expose internal data structures (beware they may be volatile from version to version). |
See The Rhai Book for details on the Rhai script engine and language.