This repository has been archived on 2025-08-04. You can view files and clone it, but cannot push or open issues or pull requests.
rhaj/_archive/rhai_engine/rhaibook/rust/modules/index.md
2025-04-04 08:28:07 +02:00

1.3 KiB

Modules

{{#include ../../links.md}}

Rhai allows organizing functionalities ([functions], both Rust-based and scripted, and [variables]) into independent modules.

A module has the type rhai::Module and holds a collection of [functions], [variables], [type iterators] and sub-modules.

It may contain entirely Rust functions, or it may encapsulate a Rhai script together with all the [functions] and [variables] defined by that script.

Other scripts then load this module and use the [functions] and [variables] [exported][export].

Alternatively, modules can be registered directly into an [Engine] and made available to scripts, either globally or under individual static module [namespaces][function namespaces].

Modules can be disabled via the [no_module] feature.

Usage Patterns

Usage API Lookup Sub-modules? Variables?
Global module Engine:: register_global_module simple name ignored yes
Static module Engine:: register_static_module namespace-qualified name yes yes
Dynamic module [import] statement namespace-qualified name yes yes