📚

Rust入門 ~その1 環境構築からクイックスタート~

2020/09/25に公開

初めに

がっつり業務で使っているプログラミング言語の種類はそこまで多くはないのですが、視野が狭くならないように自分にとって新しい技術に手を出していくことは大切ですよね。

ということで、前々から気になっていたRustを勉強していきたいと思います。
Stackoverflowのsurveyでは5年連続で好きな言語1位ですからね。

2020年のsurvey

せっかくならoutputしながら勉強していこうということで記事を投稿しながら進めていきます。

環境構築

Windows10 HomeでWSL2上のDockerコンテナにvscodeからremote containerで接続して開発をしたいと思います。
※WSL2とDockerのインストール方法は本題ではないので割愛します。

まずはvscodeのremote wslでDockerがインストールされたUbuntuに接続し、作業ディレクトリを作ります。
ここでは、~/rustを作業ディレクトリとしました。

次に.devcontainerディレクトリを作って、devcontainer.jsonとDockerfileを作ろうと思ったのですが、一応標準でRustのコンテナがあるかどうか見てみます。

あるではないですか!

素晴らしいですね!
標準で付属されたRustのdevcontainer.jsonとDockerfileを作業ディレクトリに追加し、以下を実行してコンテナに接続します。

Rustのバージョンは最新の1.46.0のようですね。
Gitも入っているのですぐに開発を始められそうです。

root@bbaaf5321f31:~# rustc --version
rustc 1.46.0 (04488afe3 2020-08-24)
root@bbaaf5321f31:~# git --version
git version 2.20.1

業務で利用する際はバージョンを固定したいので自分でdevcontainer.jsonとDockerfile(さらにはdocker-compose.ymlも)を書いたほうがいいと思いますが、個人で勉強する分にはremote developmentに付属されたイメージで十分ですね。

クイックスタートを実施してみる

Rustの公式サイトに以下の4種類の用途が記載されています。

  • コマンドライン
  • WebAssembly
  • ネットワーク
  • 組み込み

私の本職はバックエンドエンジニアなので一番なじみ深いネットワークにしてAPIを作ってみたいと思います。

公式サイトでネットワークをクリックして先に進むと、クライアントかAPI提供側かを聞かれます。
わかりやすくていいですね。

APIを作りたいのでAPI提供側のほうを選択してクイックスタートをやってみます。
こちらではRustのフレームワークであるRocketの使い方を学ぶことができるようです。

ということでクイックスタートに従って以下を実施してみます。

git clone https://github.com/SergioBenitez/Rocket
cd Rocket/examples/hello_world
cargo run

ちゃんと起動しました!(サンプルそのままなので当然ですが)
ロケットがかわいくていいですね。

ビルド時にところどころgithubのURLが表示されていました。
依存ライブラリはgithubからとってきているようです。(初心者のため間違ってるかもしれませんが)
javaのようにパッケージングされたライブラリを取得するのではなく、goのようにソースコードのままとってくるのでしょうか。

vscodeのREST CLIENTを使って動作確認もしてみます。

ちゃんと動作しましたね。
とりあえず、初学者が必ず通るHello Worldを動かしてみることができました。
次の記事からはドキュメントを見ながらAPIを作っていきたいと思います。

Discussion