初めてのRust 導入編

こんにちは、Yuuichi(@WestHillWorker)です。

私自身業務経験がありませんが、以前からずっと触ってみたいと思っていたRustについて、インストール・入門となるHello worldの出力までやってみたいと思います。

スポンサーリンク

開発の歴史

開発元や誕生について調べてみました。

  • Mozillaとコミュニティによって作成されたオープンソースのプログラミング言語
  • 2006年Mozillaの従業員であるGraydon Hoareさんの個人プロジェクトが、2010年にMozilla Researchの公式プロジェクトとなったようです。
  • 2015年Rust 1.0リリース
  • 2020年独立したRust foundationの設立を進めているとのことです。

特徴

Rust言語は速度、並行性、安全性を言語仕様として保証するC言語、C++に代わるシステムプログラミング

引用元:wikipedia
  • ガベージコレクション(GC)なしで、豊富な型システム・所有権によってメモリ・スレッドの安全性を保証
  • 生産性向上のための統合パッケージマネージャ・ビルドツールの存在、様々なエディタへの対応

他にも色々あるとお思いますが、個人的に気になった点を記載しました。

Rust導入(バージョン:1.46.0)

今回Macにて作業をしましたが、インストールが簡単でした。

ひとまずコードを書いてみたいという方向けに、公式サイトにRust Playgroundがありました。

rustup

Rustのインストーラ・バージョン管理用のツールが必要なためインストールする。

github:rustup

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

インストールが進むと、1~3を選ぶ必要がありますが、特にカスタマイズしないためdefaultの1を入力しました。

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
1
....省略
Rust is installed now. Great!
To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH
environment variable. Next time you log in this will be done
automatically.
To configure your current shell run source $HOME/.cargo/env

PATHを設定するため、ターミナルを再起動するか以下のコマンドを実行します。

$ source $HOME/.cargo/env

デフォルトだと$HOME/.cargo/bin配下にrustup・cargoなどがインストールされていると思います。

$ ls $HOME/.cargo/bin
cargo		cargo-fmt	clippy-driver	rust-gdb	rustc		rustfmt
cargo-clippy	cargo-miri	rls		rust-lldb	rustdoc		rustup

各種コマンドの確認

インストール・PATHが通ると以下のコマンドでバージョン情報が確認できると思います。

$ rustup --version

その他

Rustを最新バージョンにアップグレードしたい時

$ rustup update

cargo

rustupのインストール後にcargoというRustのビルド兼パッケージマネージャを利用することができます。

$ cargo -h

プロジェクトのビルド・実行・テスト・ドキュメントのビルドなどができるようです。

サンプルプロジェクトを作成

cargoを利用してお試し用のプロジェクトを作成。

$ cargo new sample-hellow
$ tree sample-hellow/
sample-hellow/
├── Cargo.toml  // Rust用のマニフェストファイル
└── src
    └── main.rs  // メイン処理を記述するファイル
1 directory, 2 files

Cargo.tomlとsrc配下にmain.rs(実行するプログラム)を記述するファイルが作成されました。

main.rs

fn main() {
    println!("Hello, world!");
}

動かしてみる

作成したプロジェクトに移動して、cargoコマンドで動かしてみましょう。

$ cargo run
...省略
Hello, world!

Hello, world!が出力されました!

今回はここまでとなります。ありがとうございました!!

その他

エディタのサポートも幅広く用意されているようでした。

Visual Studio Code・Sublime Text3・Atom・Vimなどなど

各種エディタで便利なツールへのリンク

まとめ

今回初めて、Rustに関して触れました。

インストールはとても簡単でしたが、まだコードは書いていないので、今後は少しずつコードを書いてみようと思います。

公式サイトには、体験的に学習できるようにコマンドライン・WebAssembly・ネットワーク・組込みなどのロードマップがありましたので、コマンドラインあたりで何か学習しながら作成できたらと思います。

公式サイトへのリンクは、以下となります。

https://www.rust-lang.org/ja/