Contents
Rust 初心者 入門ガイド 2026:インストールから実践まで体系的に学ぶ
プログラミング初心者やシステム開発に興味のあるエンジニアにとって、Rustは安全性と高速性を両立させる次世代の言語です。本記事では、2026年最新版のRust環境構築手順や核となる所有権・メモリ管理などの概念を、初心者向けに丁寧に解説します。読者の悩みを解決し、実際のコード作成ができるようになることが目的です。
Rustの環境構築: rustupによるインストール手順
Rustの導入には「rustup」という公式ツールチェーンが必須です。この方法はWindows・macOS・Linux全てで動作し、一括でコンパイラやCargo(ビルドツール)を取得できます。
注意: 本記事では2026年時点での情報に基づいていますが、公式サイトのURLやコマンドが変更されている可能性があります。常に公式リポジトリで最新情報を確認してください。
rustupのインストール方法
-
公式サイトからダウンロード
https://www.rust-lang.org/tools/install にアクセスし、「Install Rust」ボタンをクリックします。OSに対応したインストーラーが自動でダウンロードされます。 -
コマンドラインで実行
macOS/Linuxではターミナル、WindowsではPowerShellを使用して以下のコマンドを入力します。
bash
curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh -
パスを通す
インストールが完了したら、環境変数の更新が必要です。以下を実行します。
bash
source $HOME/.cargo/env
Cargoでのプロジェクト管理と基本操作
Rustの標準ビルドツール「Cargo」は、プロジェクト作成からテストまで一貫してサポートします。特に「cargo new」や「cargo run」といったコマンドを理解することで、スムーズな開発が可能になります。
新規プロジェクトの作成
-
プロジェクト初期化
bash
cargo new hello_rust
cd hello_rust -
プロジェクト構造確認
以下のファイル・ディレクトリが生成されます。
├── Cargo.toml
└── src/
└── main.rs -
Cargo.toml:依存関係やメタデータを記述 -
src/main.rs:実行されるコード -
ライブラリ型プロジェクトの作成
bash
cargo new --lib my_library
| プロジェクトタイプ | 説明 | 用途例 |
|---|---|---|
| バイナリ(アプリケーション) | cargo newで生成される |
コマンドラインツールなど |
| ライブラリ | --libフラグ付きで生成 |
ユーティリティ関数の公開 |
所有権・借用・ライフタイムの基本概念
Rustの特徴的な「所有権(Ownership)」メカニズムは、メモリリークやデータ競合を自動的に防ぐ仕組みです。このセクションでは、変数の所有権移譲と参照の使い分けについて説明します。
変数の所有権移譲メカニズム
Rustでは変数が所有する値は1つの所有者を持つ仕組みで管理されます。以下に例を示します。
|
1 2 3 |
let s1 = String::from("hello"); let s2 = s1; // s1の所有権がs2へ移動 |
この時、s1は使用不能になります(「ムーブ(move)」と呼ばれます)。これにより、メモリの不正な解放を防ぐことができます。
参照と借用の使い分け
変数に所有権を持たせずに参照する方法が「借用(borrowing)」です。&記号で参照を作成し、コンパイラは自動的にライフタイムを管理します。
|
1 2 3 4 5 6 7 8 9 10 |
fn main() { let s1 = String::from("hello"); let len = calculate_length(&s1); println!("The length is {}", len); } fn calculate_length(s: &String) -> usize { s.len() } |
Rust特有のメモリ管理仕組み
Rustではガベージコレクター(GC)を用いないことで、パフォーマンスと安全性を両立させています。このセクションではスタック・ヒープの違いやスマートポインタの役割について解説します。
スタックとヒープの違い
| 項目 | スタック | ヒープ |
|---|---|---|
| アクセス速度 | 高速(直接アドレス取得) | ゆっくり(メモリ確保が必要) |
| 管理方法 | コンパイラ自動管理 | 手動またはスマートポインタで管理 |
| 安全性 | 保証されている | Rustでは所有権によって安全に |
スタックは関数呼び出しや局所変数の保存に使われ、ヒープはBoxやVecなどのデータ構造が利用します。
VS Codeでの開発環境構築(rust-analyzer導入)
VS CodeでRustを効率的に開発するためには、「rust-analyzer」拡張機能の導入が不可欠です。コード補完やエラーチェックが実現され、学習効率が格段に上がります。
拡張機能のインストール手順
- VS Codeを開き、「拡張機能」タブへ移動
- 「rust-analyzer」と検索し、公式リポジトリからインストールします。
- Rustが正しくインストールされていることを確認(
rustc --versionで)
コード補完・エラーチェックの活用法
-
自動補完機能
fn main()と入力すると、{}が自動で挿入されます。 -
コンパイラとの連携
エラーがあれば、画面内に赤色で表示され、修正案を提示してくれます。例えば以下のようなエラーが出た場合:
rust
let s = String::from("hello");
let r1 = &s;
let r2 = &s;
println!("{} and {}", r1, r2);
コンパイラは「r1とr2が同時に使用されている」として警告します。
最初のHello, world!プログラムの記述
Rustでの最初の一歩として、「Hello, world!」を出力するプログラムを作成しましょう。Cargoプロジェクト内で簡単なコードを書くことで、学習効果を高められます。
fn main()ブロックの基本構文
main()関数はRustアプリケーションのエントリポイントです。以下のように記述します。
|
1 2 3 4 |
fn main() { println!("Hello, world!"); } |
println!:マクロで標準出力に文字列を送る!:マクロ呼び出しの記号(他の言語では見慣れにくいが、Rustでは必須)
標準出力への文字列出力
実行してみましょう。プロジェクトフォルダから以下のコマンドを入力します。
|
1 2 |
cargo run |
表示される出力は以下になります:
|
1 2 |
Hello, world! |
エラーが起きた場合は、main.rsに記載された文法と一致しているか確認してください。また、「コンパイラの警告メッセージ」に従って修正する習慣をつけてください。
結論
本記事では、Rust環境構築から実践までの一連の手順を解説しました。読者は以下の知識を得たことにより、今後の学習や開発に活かせる基礎力を身につけることができます。
- Rustの導入方法(rustup)
- Cargoによるプロジェクト管理
- 所有権・借用メカニズム
- VS Codeでのrust-analyzer導入
- Hello, world!プログラム作成
重要: 本記事は2026年時点の情報に基づいていますが、技術の進化に伴い内容が変更される可能性があります。公式ドキュメントを常に参照してください。