Rust で WebAssembly で Hello World

rust

WebAssembly(wasm) はモダンなウェブブラウザーで実行できる新しいタイプのコードです。

ネイティブに近いパフォーマンスで動作するコンパクトなバイナリー形式の低レベルなアセンブリ風言語です

これを Rust から生成して、ブラウザで Hello World を表示させる手順です。

macOS Catalina で動作確認済みです。

Rust をインストール

% curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Rust のバージョン確認

% rustc -V
rustc 1.46.0 (04488afe3 2020-08-24)

wasm のテンプレートを作成する cargo generate というサブコマンドを
利用できるようにするために cargo-generate をインストールします。

Cargoは、Rustのビルドシステム兼、パッケージマネージャです。
Rustを入れるとCargoもセットでインストールされます。

cargo-generate をインストール

% cargo install cargo-generate

cargo generate で wasm のテンプレートを生成

% cargo generate --git https://github.com/rustwasm/wasm-pack-template

プロジェクト名を聞かれるので例えば
test_rust_wasm
と入力

Rust で npm パッケージ、 wasmを構築するためのツールである
wasm-pack のインストール

% curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh

wasm-pack のバージョン確認

% wasm-pack -V
wasm-pack 0.9.1
% cd test_rust_wasm

ビルドします

% wasm-pack build --dev

npm を使うので node.js をインストールします。

% brew install node

package.json を生成

% npm init wasm-app www
% cd www

node_modules にライブラリをインストールします

% npm install

起動します

% npm run start

ブラウザで localhost:8080 にアクセスして
以下のように表示されれば ok です。

本サンプルは以下の書籍を参考にしました。

プログラミング言語Rust入門

その他参考記事

RustではじめるWebAssembly入門~JavaScriptを超える高速なWebアプリ開発を実践しよう – 2021/8/4
https://codezine.jp/article/detail/14567

おすすめの Rust の本

実践Rustプログラミング入門

実践Rust入門 [言語仕様から開発手法まで]

Rustで始めるネットワークプログラミング

RustではじめるOpenGL (技術の泉シリーズ(NextPublishing))

プログラミング言語Rust 公式ガイド

コメント

タイトルとURLをコピーしました