Skip to main content

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.