SECKUN 2025 / WebAssemblyをシステムで利用するために
TOC:
自己紹介
所属
書籍
登壇実績
この講義の前提知識
ブラウザサイドJavaScript
Rust(難しければバイナリ提供します)
最低限のターミナル操作
最低限のコーディングエージェント経験
WebAssemblyとは何か
Claude... 説明頼むよ...
簡単なWebAssemblyに触れる
簡単な四則演算の実装
ブラウザ上で実行して確認する
PC上でWebAssemblyを動かす
先ほどのバイナリをwasmtimeで動かす
WebAssembly System Interface (WASI) 入門
WebAssembly System Interface の教科書的説明
「Hello, World」をコンパイルし、wasmtimeで動かす
この辺で休憩になるのでは
「Hello, World」をブラウザで動かすには?
browser-wasi-shim の紹介
WebAssembly System Interface の概念のおさらい
PC上で動かす場合
ブラウザ上で動かす場合
WASI のサンドボクシングについて
rm をwasmにできるか?
coreutilsをMacでwasmビルドする例
こちらが作ったものです
これをPC上で、wasmtimeで動かす
「削除ができるように」設定して動かす
preopens の仕組み座学
WASIのサンドボクシングのユースケース考
AI Agentに実行させるコマンドの安全性
事例: Agentが rm -rf ~ しちゃった...
Agentには安全なコマンドだけを見せる
かと言って専用のコマンドをすべて用意するのは難しい
既存の資産をWasm化してまとめて安全にできないか?
Agentの rm を無効化するdemo
比較: コンテナでのrm実行 / Mac のネイティブサンドボックスなど
発展的な話題
WebAssembly Component Model
WASI preview 2
wasm-p2でhello, world、webアクセスをさせる例、など実演
coreutilsをMac+wasi-sdkでコンパイル
#seckun #webassembly