wasmerでWebAssemblyの門を叩く: Rustが征く(2)
ビルドターゲットにwasm32-wasiを追加
インストールして終わりじゃねーぞ
関連記事:
WSL2で作るWindows開発環境: Rustが征く(1)
------------------- ↓ 前書はここから ↓-------------------
前回の記事でWSLとCLionのRust環境を作ったのは
そこから開発をするためだ。
(インストールして満足するためではない。)
Rust+Webと言えばWebAssemblyだろう。
生涯Web屋をやっている筆者からするとWebAssemblyは終着点となし得るものだと思う。
WebAssemblyをWebで使うためのものをいろいろ用意していこうと思うが、
とりあえず、RustからWebAssemblyをビルドして、
コマンドラインで実行してみよう。
ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪
------------------- ↓ 本題はここから ↓-------------------
Rustのインストール
前回の記事を参照のこと
WSL2で作るWindows開発環境: Rustのすゝめ(1)
WebAssemblyランタイムをインストール
WebAssemblyは単独では動かないので、
何かしらの実行環境が必要。
コマンドライン実行環境として
などがあるが、
パッケージマネージャーも併せて使えるので
今回はwasmerを採用。
(速度的にはwasm3が最速らしい)
インストールはcargoコマンドから可能だが、
cargoは遅すぎ問題があるので、
インストーラーを使う
wasmerのインストール
curl https://get.wasmer.io -sSfL | sh
source $HOME/.wasmer/wasmer.sh
wasmer --version
wasmer 2.0.0
wapm --version
wapm-cli 0.5.1
$HOME/.wasmerディレクトリに各種データがインストールされる。
Macの場合
brew install wasmer
Windowsの場合
iwr https://win.wasmer.io -useb | iex
ビルド先にWASIを追加
WebAssemblyをJVMっぽくどのプラットフォームでも対応できるインタフェースにWASIというのがあるが、
ビルド先をWASIにするように追加しておく
rustup target add wasm32-wasi
WebAssemblyでへろーわーるど
通常通りcargoコマンドでプロジェクトを作成して、
Hello WorldをWebAssembly越しに表示させてみる。
cargo new wasm-hello
mkdir .cargo
printf '[build]\ntarget = "wasm32-wasi"\n' | tee .cargo/config.toml
cargo check --release
WebAssembly実行
wasmerを使ってWebAssemblyを実行
cargo build --release
wasmer target/wasm32-wasi/release/wasm-hello.wasm
Hello, world!
(^_-)-☆ Hello World!
------------------- ↓ 後書はここから ↓-------------------
Discussion