# Rhai

An embedded scripting language and evaluation engine for Rust, with a JavaScript-and-Rust-like syntax, dynamic typing, and tight integration with native Rust functions and types.

Rhai is an embedded scripting language and evaluation engine for Rust, giving a safe and easy way to add scripting to any application. It supports every CPU and OS target that Rust supports, including WebAssembly and no-std, and needs Rust 1.66.0 or later.

Its syntax resembles JavaScript and Rust with dynamic typing, and it integrates tightly with native Rust functions and types, including getters and setters, methods, and indexers; Rust values can be passed into a script as variables or constants through an external scope without implementing any special trait. An optional bytecode compiler and VM roughly doubles evaluation speed over the standard AST walker. Other features include compiling once to an AST for repeated evaluation, closures that capture shared values, function and operator overloading, dynamically loadable modules, serialization through serde, and a debugging interface.

Website: https://github.com/rhaiscript/rhai
