Aims to provide a C# interface of Wasmer, one of WebAssembly runtimes, integrating as a native plugin for Unity.
There is no best library to use Wasm on Unity/C#.
- Wasmtime / wasmtime-dotnet
- Wasmtime does not support iOS/Android platforms.
- https://github.com/mochi-neko/wasmtime-dotnet-unity
- Wasmer / WasmerSharp
- WasmerSharp embeds old version of Wasmter neaby 0.57.0 (2019).
- cs-wasm
- Original implementation for Wasm by C#, without native plugins.
The following are the best features I think:
- uses a famous Wasm runtime as native plugin,
- maintained to stay close to the latest version of the original,
- supports major platforms: Windows, macOS(Intel/AppleSilicon), Linux, Android(ARM64/ARMv7) and iOS including AoT compilation.
- Implement minimal Wasm API for hello world.
- Implement native Wasm API with samples.
- Make demo on Unity.
- Implement headless in Wasmer API.
- Prepair Wasmer build environment for Android/iOS.
- Implement WASI API.
- Implement features in Wasmer API.
- Config
- Engine
- Store
- ByteVector
- ValueType
- FunctionType
- GlobalType
- TableType
- MemoryType
- ExternalType
- ImportType
- ExportType
- Trap
- Foreign
- Module
- ValueInstance
- FunctionInstance
- GlobalInstance
- TableInstance
- MemoryInstance
- ExternalInstance
- Instance
- Wat2Wasm
- Headless
- WASI
- CPU Features
- Bulk Memory?
- Memory64?
- Module Linking?
- Multi Memory?
- Multi Value?
- Featues
- Reference Type
- SIMD
- Tail Call
- Thread
- Metering?
- Middleware?
- Basics
- Hello World
- Instanting a module
- Handling errors
- Interacting with memory
- Exports
- Exproted global
- Exproted function
- Exproted memory
- Imports
- Imported global
- Imported function
- Externs
- Table
- Memory
- Tunables
- Limit memory
- Engines
- Engine
- Headless engines
- Cross-compilation
- Features
- Compilers
- Singlepass compiler
- Cranelift compiler
- LLVM compiler
- Integrations
- WASI
- WASI Pipes