たにしきんぐダム

プログラミングやったりゲームしてます

『Rustで学ぶWebAssembly』でWasm Component Modelに入門した

すごく良かった!久しぶりに技術系の本を通読できた気がする

gihyo.jp

Wasm Component Model の勉強しないとなーと思っていた*1ところに手を動かして学べる本が出たので読んだ!

Wasm Component Model のツールチェーンが一番充実しているのはRustで、これを学ぼうと思うとどうしてもRustを避けることはできないのだが、何分自分はRustに不慣れなので二の足を踏んでいた。 しかしこの本は第一章がRustの簡単な入門に割かれていて、それに本の中のRustのサンプルコードも解説が懇切丁寧に書かれているのでRustの経験がない自分*2でも躓くこと無く読み進めることができました🎉

注意すべき点としてはWasm Component Model、とりわけregistryまわりはまだ変化がとても早く、本をそのまま写経していると動かないこともあるかもしれない。例えば本の中では wit というコマンドを使う場面があるのだが、本書で使われている wit publish --init--init オプションが 0.16.0 では消えていたり、つい最近 wit コマンドが消えて wkg代わりに使ってねってことになっていたりした。本の通りに読み進めたい場合は cargo install wit@0.15.0 すると良いかもしれない。

最新技術を取り扱う本だとどうしてもこういうことは起きちゃうね。

最初の wit publish とかの部分以外はだいたい同じだけれど、wkg を使った簡単化した作業ログを下に置いておく

github.com

Wasm Component Model 変化が早く、個々の関連技術のドキュメントを眺めたりしていたけれど全体的にどういう開発体験になってくるのか全然分かってなかったのですが、この本のおかげで全体感を掴むことができました!

*1:開発に携わっているScalaのWasmバックエンドWASI preview 2 対応 のために

*2:以前 https://rust-exercises.com/100-exercises/ を使って勉強したことがあるがほぼすべて忘れた。ちなみにこの本で必要な知識は100Rust Excersiceよりはるかに少ないので安心