※ 今後の説明において、時期、内容等あくまでも予定です
※ 本講座を通して、WebAssemblyのことを短くWASMと呼ぶことがあります
地味です
難易度やや高めです
一緒に調べて、作っていきます
難易度が高い、一緒に講座を作りたい、ということで
全てをオフライン必須、というわけではありませんが...
資料は全て公開(録画もあるそうです)、Discordで適切な内容であれば質問は可能です。自学にも対応した形にはなっています
また、テイカー気質の方は少し想定している参加者層とは違うこともご了承ください
#EngineerCafeLabWASM
#webassembly
00_installday
[udzura github wasm course]
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add wasm32-wasi rustup target add wasm32-unknown-unknown
cargo new test-crate --bin cd test-crate cargo build ./target/debug/test-crate #=> Hello, world! と表示されればOK
brew install wasmtime wabt wasm-tools
# wasmtime curl https://wasmtime.dev/install.sh -sSf | bash . /home/ubuntu/.bashrc # wabt (x64前提) wget https://github.com/WebAssembly/wabt/releases/download/1.0.36/wabt-1.0.36-ubuntu-20.04.tar.gz tar xzf wabt-1.0.36-ubuntu-20.04.tar.gz sudo mv wabt-1.0.36/bin/* /usr/local/bin # wasm-tools cargo install --locked wasm-tools
# 先ほどhello worldしたプロジェクトで実行 cargo build --target wasm32-wasi file target/wasm32-wasi/debug/test-crate.wasm # target/wasm32-wasi/debug/test-crate.wasm: WebAssembly \ # (wasm) binary module version 0x1 (MVP) # ... のように表示される(1行で)
wasmtime target/wasm32-wasi/debug/test-crate.wasm # Hello, world! と同じように出力される
wasm-objdump -x target/wasm32-wasi/debug/test-crate.wasm || echo NG! # NG! と出なければOK wasm-tools validate -v target/wasm32-wasi/debug/test-crate.wasm || echo NG! # NG! と出なければOK
講座というより、学生の自主ゼミみたいな感じかもしれない