WAT
WebAssembly Text format
https://developer.mozilla.org/ja/docs/WebAssembly/Understanding_the_text_format
WebAssembly を人間が読んだり編集したりできるようにするためのテキストフォーマット
拡張子は .wat
WASM ファイルとの相互変換が可能
e.g.
wasm-tools を用いた変換
WASM ファイル → WAT
code:sh
$ wasm-tools print target/wasm32-wasip1/release/hello-world.wasm > hello.wat
WAT → WASM ファイル
code:sh
$ wasm-tools parse hello.wat -o hello.wasm
code:wat
(module $hello_world-e14b9d39b15f9b16.wasm
(type (;0;) (func))
(type (;1;) (func (param i32)))
(type (;2;) (func (param i32 i32)))
(type (;3;) (func (param i32 i32) (result i32)))
(type (;4;) (func (param i32) (result i32)))
(type (;5;) (func (param i32 i32 i32) (result i32)))
(type (;6;) (func (param i32 i32 i32)))
(type (;7;) (func (param i32 i32 i32 i32) (result i32)))
(type (;8;) (func (result i32)))
Lisp のように S 式 で構成される
以下では、(func (param i32)) という型に ;1; という名前を付けている
(type (;1;) (func (param i32)))
参考
Rustで学ぶWebAssembly ―入門からコンポーネントモデルによる開発まで
https://developer.mozilla.org/ja/docs/WebAssembly/Understanding_the_text_format