WaaS is a script engine for Unity / .NET.
WaaS stands for WebAssembly as a Script, which adopts WebAssembly as a script execution format.
This has the following benefits:
Language independent
Various languages that support output to WebAssembly such as Rust, Go, MoonBit and C/C++ can be used, allowing you to choose the language that best suits your needs.
Component Model supported
WaaS supports the Component Model and allows you to perform practical bindings.
Safe
Without explicit permission, WebAssembly code cannot access the host environment's memory or functions. You can also run untrusted scripts safely.
IL2CPP / NativeAOT compatible
WaaS is an interpreter fully implemented in C# and does not require JIT or AOT compilation of WebAssembly itself. It can run anywhere Unity or .NET supports including platforms where JIT is prohibited, such as iOS.
Use cases
As a simple script in a game
It can be used as a script to describe events and AI in a game. By creating scripts in small units, you can achieve fast hot reloads.
As a user-created script
It can be used as a script to give complex behavior to user-created contents.
As a plugin system
It can be used as a script to add plugins to applications created with Unity or .NET.