macOS Sierra以降にRustとWebAssemblyを入れる
プログラミング言語RustがWebAssemblyをサポートするとは分かっていたが、具体的にどうすればRustでWebAssemblyのプログラミングができるか分からなかった。
環境設定についてはRust and WebAssemblyという(おそらく公式)GitBookの4.1.Setupに書かれてあることを実践すれば良い。
ただmacOSでやろうとするといくつか余計な手順が必要なので、それも含めて全体の流れを記す。ビルドツールであるXcodeの最新版が入っているという前提で行く。入っていなければApp Storeで入手しコマンドラインツールも入れておく。
コマンドラインツールはターミナルで以下のコマンドを実行すれば入る。
xcode-select --install
- Homebrewのインストール
本家のサイトから引っ張ってきたコマンドをターミナル上で実行。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- Opensslのアップデート
これをやらないと5. cargo-generateのビルドが通らない。
brew install openssl@1.1
このbrewのフォーミュラがSierra以降を要求している。従ってopensslを何らかの方法で(cargo-generateが要求する)1.02より新しいものにできればSierraより古いものでもいけるかも知れない。ただそういう需要は少ないかも知れない。
- 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)
のような出力がある。
- wasm-pack
インストールスクリプトを指定されたサイトから持ってきてターミナル上で実行。
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- cargo-generate
Tookchainでインストールされているはずのcargoを用いる。
cargo install cargo-generate
- 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の情報が少ないので、まずは自分の学習メモを作っていく訳である。