この分野は素人なのでなにか間違いがあれば教えて下さい
ゴール
$ rustup target add wasm32-wasi $ rustc hello.rs --target wasm32-wasi $ wasmtime hello.wasm
runtimeの一つである,wasmtimeの例のようにrustのwasm32-wasi(wasi)に準拠したwasmを解釈して実行できるバイナリ zucca-wasmを作る.(さすがにすべてのapiをさばけるようにするのはしんどいかもしれないので一部使えないようにするかもしれない)
まずはwasmのruntimeの設計の種類
wikipedia曰く,
- AOT(ahead-of-time)compiler (wasm -> 機械語)
- JIT(just-in-time)compiler (wasm -> ir(中間言語) -> vm)
- interpreter(直接実行.実装によりけり) (wasm3)
参考資料
github.com github.com developer.mozilla.org engineering.linecorp.com github.com
結論
- MVP実装
- AOT(ahead-of-time)compiler
interpreterのほうが楽な気がするが一旦はAOTで行う.