https://github.com/ruccho/waas
A language-independent scripting engine for Unity and .NET using WebAssembly.
https://github.com/ruccho/waas
component-model csharp unity wasm webassembly
Last synced: about 1 year ago
JSON representation
A language-independent scripting engine for Unity and .NET using WebAssembly.
- Host: GitHub
- URL: https://github.com/ruccho/waas
- Owner: ruccho
- License: mit
- Created: 2024-05-05T14:41:22.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-24T16:32:56.000Z (over 1 year ago)
- Last Synced: 2025-05-30T16:43:43.211Z (about 1 year ago)
- Topics: component-model, csharp, unity, wasm, webassembly
- Language: C#
- Homepage:
- Size: 14.5 MB
- Stars: 83
- Watchers: 3
- Forks: 3
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

WaaS
Stands for WebAssembly as a Script,
a language-independent scripting engine for Unity and .NET.
[](https://github.com/ruccho/WaaS/releases)
[](https://www.nuget.org/packages/WaaS)
### Language independent
Various languages that [support output to WebAssembly](https://github.com/appcypher/awesome-wasm-langs) 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](https://component-model.bytecodealliance.org/) 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.
> [!NOTE]
> WaaS is currently **very experimental** and breaking changes can be made.
# Documentation
### See the [documentation](https://ruccho.com/WaaS) for installation and usage.