はじめに

Rust開発環境をさっと構築して小さなアプリを書きましょう!

Rustをインストールする

Rust Playgroundではコンピュータに何もインストールすることなく、オンラインでRustを試すことができます。

インストールせずにRustを試す

Rustup:Rustインストーラおよびバージョン管理ツール

一般によく採用されるRustのインストール方法は、Rustupというツールを介するものです。このツールはRustインストーラとバージョン管理ツールを兼ねたものです。

あなたはmacOSかLinuxまたはその他のUnix系OSを使用しているようです。RustupをダウンロードしてRustをインストールするには、ターミナルで以下のコマンドを実行してください。それから画面に表示される指示に従ってください。Windowsユーザである場合には、「その他のインストール方法」を参照してください。

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

あなたはWindowsを使用しているようです。Rustを使い始めるには、インストーラをダウンロードして実行し、画面に表示される指示に従ってください。場合によっては、Visual Studio C++ Build toolsをインストールする必要があります。もしWindowsユーザでない場合には、「その他のインストール方法」を参照してください。

Windows Subsystem for Linux

あなたがWindows Subsystem for Linuxのユーザーであるなら、下記をターミナル上で実行し、スクリーン上の説明に従ってRustをインストールしてください。

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

RustはWindows、Linux、macOS、FreeBSD、そしてNetBSD上で動作します。これらのプラットフォームのいずれかでこれが表示されている場合は、以下の値と一緒に問題を報告してください。

navigator.platform: MacIntel
navigator.appVersion: 5.0 (Macintosh)

問題を報告する

Unix上でRustをインストールするときは、
以下をターミナルで実行し、画面の指示に従ってください。

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

Windows上では、
rustup-init.exeをダウンロード・実行し、画面の指示に従ってください。

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

Windows上であれば、
rustup-init.exeをダウンロード・実行し、画面の指示に従ってください。


Rustは最新ですか?

Rustは頻繁に更新されます。rustupをインストールしたのがしばらく前なら、Rustのバージョンが古くなっている場合があります。rustup update を実行して、最新バージョンのRustをインストールしましょう。


インストールの方法についてもっと知る

Cargo:Rustビルドツールおよびパッケージマネージャ

Rustupをインストールすると、Rustのビルドツール兼パッケージマネージャであるCargoの最新安定版が同時に手に入ります。Cargoはたくさんのことをします:

  • プロジェクトのビルドにはcargo build
  • プロジェクトの実行にはcargo run
  • プロジェクトのテストにはcargo test
  • プロジェクトのドキュメントのビルドにはcargo doc
  • ライブラリをcrates.ioに公開するにはcargo publish

RustとCargoがインストールされたことを確かめるには、ターミナルでこれを実行してください

cargo --version

cargoブックを読む

その他のツール

Rustは多くのエディタでサポートされています:

新しいプロジェクトを作成する

新しいRust開発環境で小さなアプリケーションを書きましょう。始めにCargoを使って新しいプロジェクトを作りましょう。好きなターミナルで以下を実行します:

cargo new hello-rust

これでhello-rustという新しいディレクトリが作られ、以下のファイルが置かれます:

hello-rust
|- Cargo.toml
|- src
  |- main.rs

Cargo.tomlはRust用のマニフェストファイルです。プロジェクトのメタデータに加え依存関係も記録されます。

src/main.rsがアプリケーションのコードを書く場所です。


cargo newは「Hello, world!」プロジェクトを生成します!ターミナルで作成した新しいディレクトリに移動し、以下を実行することでこのプログラムを実行できます:

cargo run

以下の出力が得られるはずです:

$ cargo run
   Compiling hello-rust v0.1.0 (/Users/ag_dubs/rust/hello-rust)
    Finished dev [unoptimized + debuginfo] target(s) in 1.34s
     Running `target/debug/hello-rust`
Hello, world!

依存関係を追加する

さあ、アプリケーションに依存関係を追加しましょう。 Rustのパッケージレジストリであるcrates.io上で、あらゆる種類のライブラリを見つけることができます。Rustではパッケージのことをよく「クレート」と呼びます。

このプロジェクトでは、ferris-saysと呼ばれるクレートを使用します。

Cargo.tomlファイルにこの情報(クレートページから取得)を追加しましょう。

[dependencies]
ferris-says = "0.1"

さあ、実行してみましょう。

cargo build

すると、Cargoが依存関係をインストールするでしょう。

このコマンドの実行によってCargo.lockという新しいファイルが作成されていることがわかるでしょう。このファイルは私たちがローカルで使っている依存関係の厳密なバージョンを記録しています。

この依存関係を使うためにmain.rsを開いてみましょう。(別の例を示すために)中身をすべて削除してこの行を追加してください。

use ferris_says::say;

この行はferris-saysクレートがエクスポートしたsay関数を使えることを示しています。

小さいRustアプリケーション

さあ、新しい依存関係を持った小さなアプリケーションを書いてみましょう。私たちのmain.rsの中に、次のコードを追加してください。

use ferris_says::say; // from the previous step
use std::io::{stdout, BufWriter};

fn main() {
    let stdout = stdout();
    let message = String::from("Hello fellow Rustaceans!");
    let width = message.chars().count();

    let mut writer = BufWriter::new(stdout.lock());
    say(message.as_bytes(), width, &mut writer).unwrap();
}
    

これを保存し、次のように入力することでアプリケーションを実行します。

cargo run

きっとうまく動いたでしょう。アプリケーションが画面に次のように出力していることを確認してください。

----------------------------
| Hello fellow Rustaceans! |
----------------------------
              \
               \
                 _~^~^~_
             \) /  o o  \ (/
               '_   -   _'
               / '-----' \
    

もっと学ぼう!

あなたは今やRustaceanです!ようこそ!お会いできて光栄です。準備ができたら学習ページに移動してみましょう。そこであなたはRustの冒険を手助けする多くのドキュメントを見つけることができるでしょう。

もっと学ぼう!

フェリスというこのカニは誰ですか?

フェリスはRustコミュニティの非公式マスコットです。多くのRustプログラマは自身のことを「Rustacean」と呼びますが、これはcrustaceanの言葉遊びから来ています。私たちはフェリスを指し示すのに、性別を表す代名詞の代わりに「they」や「them」などの代名詞を使います。

フェリスは、鉄もしくは鉄に関連することを意味する「ferrous」という形容詞に由来する名前です。錆び(Rust)は鉄の上にできることが多いので、マスコットの名前の起源として面白いですね!

rustacean.netでは、より多くのフェリスの画像を見つけることができるでしょう。 左右に走るフェリスのgif