macOSでRust and WebAssembly

投稿者: | 2019年1月7日

macOS Sierra以降にRustとWebAssemblyを入れる

プログラミング言語RustがWebAssemblyをサポートするとは分かっていたが、具体的にどうすればRustでWebAssemblyのプログラミングができるか分からなかった。

環境設定についてはRust and WebAssemblyという(おそらく公式)GitBookの4.1.Setupに書かれてあることを実践すれば良い。

ただmacOSでやろうとするといくつか余計な手順が必要なので、それも含めて全体の流れを記す。ビルドツールであるXcodeの最新版が入っているという前提で行く。入っていなければApp Storeで入手しコマンドラインツールも入れておく。

コマンドラインツールはターミナルで以下のコマンドを実行すれば入る。

xcode-select --install
  1. Homebrewのインストール

本家のサイトから引っ張ってきたコマンドをターミナル上で実行。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. Opensslのアップデート
    これをやらないと5. cargo-generateのビルドが通らない。
brew install openssl@1.1

このbrewのフォーミュラがSierra以降を要求している。従ってopensslを何らかの方法で(cargo-generateが要求する)1.02より新しいものにできればSierraより古いものでもいけるかも知れない。ただそういう需要は少ないかも知れない。

  1. Rust toolchainのインストール
    ここからは基本的にRust and WebAssemblyに従う。ただし補足する必要もある。

Rustの本家のサイトのインストールに関するページに従って進めよと書いてあるのでその通り

curl https://sh.rustup.rs -sSf | sh
rustup update

を順次実行。一旦ターミナルをQuit、起動しなおすと

rustc --version

のコマンド入力に対して

rustc 1.31.1 (b6c32da9b 2018-12-18)

のような出力がある。

  1. wasm-pack
    インストールスクリプトを指定されたサイトから持ってきてターミナル上で実行。
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
  1. cargo-generate
    Tookchainでインストールされているはずのcargoを用いる。
cargo install cargo-generate
  1. npm

本家のサイトに行ってインストーラを入手、インストールを実行する。

Rust and WebAssemblyのページにあるコマンドはそのままでは動かない。macOSの場合、sudoを付けて

sudo npm install npm@latest -g

を実行すればよい。

/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
/usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js
+ npm@6.5.0
added 2 packages from 1 contributor and updated 14 packages in 12.647s

のような出力が得られる。

以上で環境構築完了!

次回以降の予定は
1. Rust and WebAssemblyに従ってHello World!を実施。
2. Windows, Ubuntu 18.04で環境構築
3. Rust and WebAssemblyの残りを実施
4. Rustの本格的な(?)プログラム入門
5. RustでWebAssemblyのワークフロー構築

というものである。

日本語で読めるプログラミング言語Rustの情報やWebAssemblyの情報が少ないので、まずは自分の学習メモを作っていく訳である。

コメントを残す