Rhai contains a robust plugin system that greatly simplifies registration of custom functionality.

Instead of using the complicated Engine::register_XXX or Module API to register Rust functions, a plugin simplifies the work of creating and registering new functionality in an Engine.

Plugins are processed via a set of procedural macros under the rhai::plugin module. These allow registering Rust functions directly in the Engine, or adding Rust modules as packages.

There are two types of plugins:

  1. Plugin Functions

  2. Plugin Modules