Ccmmutty logo
Commutty IT
0 pv4 min read

【Rust】the bookをあえてJupyter Notebookで学習していく1

https://cdn.magicode.io/media/notebox/f22119b9-c571-4cd2-b1d7-5af4230e555e.jpeg

前提

Rustにはthe bookという公式の学習ドキュメントがあります。 ここでは筆者がthe bookをJupyter Notebook学習しつつまとめたものを記載していきます。
何故Jupyter Notebookか?それはJupyter NotebookでやればそのままMagicodeの記事にできるためです。それ以外の理由はありません...

想定読者

読者は他のプログラミング言語の知識がある程度ある方を想定しています。

環境

筆者の環境はM1 Macbook Air(2020)です。Windowsではないため、Windowsの方はthe bookを参考に環境構築をお願いします。
後で構築するRust環境のそれぞれのバージョンは下記の通りです。
% cargo --version
cargo 1.60.0 (d1fd9fe2c 2022-03-01)

% rustc --version
rustc 1.60.0 (7737e0b5c 2022-04-04)

% rustdoc --version
rustdoc 1.60.0 (7737e0b5c 2022-04-04)

1. 環境構築をする

この章はRustを始めるための章です。the bookではRustのインストール〜Hello World!、ビルド・パッケージシステムの使い方まで記載されています。
本記事ではそれに加え、Jupyter NotebookでのRust開発環境の構築方法を記載します。

1.1. Rustをインストールする

はじめにRustをインストールします。といってもthe bookの通りに進めれば良いです。the bookにとても丁寧な説明が書いてあるため、ここでは必要なコマンドのみ記載します
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
rustup update
rustc --version
下記が表示されればインストール成功です。
rustc x.y.z (abcabcabc yyyy-mm-dd)

1.2. Jupyter Notebookをインストールする

Jupyter Notebookは元来Pythonをwebブラウザ上で実行できる環境です。そのためインストールにはPythonが必要となります。Python未インストールの方はこちらよりインストールしてください。
Pythonのインストールが完了したらJupyter Notebookのインストールをします。ターミナルを立ち上げ下記コマンドを入力すれば完了です。
sudo -H pip3 install jupyter
インストール完了後にターミナルで下記を実行するとブラウザが立ち上がり、画像のようなJupyter Notebookが立ち上がります。
jupyter notebook

1.3. RustをJupyter Notebookで使えるようにする

githubにあるevcxrをインストールします。こちらを使うことでJupyter Notebook上でRustを使えるようになります。ここではMac OS用の方法しか記載しませんので、他OSの方はgithubに飛びREADME.mdをご確認ください。
下記をターミナル上で実行するとJupyter NotebookでRustが選択できるようになります。
brew install cmake
cargo install evcxr_jupyter
evcxr_jupyter --install

1.4. Hello, World!プログラムを作成する

Jupyter Notebook上でRustを記載していきます。画像の通り右上の「新規」→「Rust」を選択することで作成できます。
作成が完了したら下記のような画面が開きます。入力欄に次のコードを記載し実行します。
rust
// 世界よ、こんにちは
println!("Hello, world!");

Hello, world!

まとめ

本記事ではJupyter NotebookでRustを使う方法をまとめていきました。Jupyter Notebookを使えばPythonくらい気楽にRustを学ぶことができそうです。 次回以降は引き続きthe bookの2章以降の記事を書いていきます。

Discussion

コメントにはログインが必要です。