Rustは、Mozillaが開発したオープンソースのプログラミング言語です。
特に「安全性」「高速性」「並行処理の強さ」に重点を置いて設計され、システム開発やWebAssembly、サーバーアプリケーション、ゲームエンジン開発などで注目を集めています。
この記事では、Rustの基本的な仕組みと使い方について、大学生にもわかりやすく解説していきます。
Rustとは?いま注目される理由
Rustは2006年に開発が始まり、2015年に正式リリースされたプログラミング言語です。
C/C++の代わりになる「安全なシステム言語」として設計され、メモリ管理の安全性と高速な処理性能を両立しています。
近年では、Webブラウザ上で動くプログラム(WebAssembly)やサーバー開発、インフラ基盤、ブロックチェーンなどの分野でもRustの採用が増えています。
Rustプログラムの基本構成
Rustのプログラムは次のようなパーツで構成されています。
-
クレート(crate):パッケージ単位のコード管理
-
モジュール(mod):ファイルやコードのグループ化
-
関数(fn):処理をまとめる単位
-
変数(let、mut):データを一時保存する箱
-
制御構造(if、match、for、whileなど):プログラムの流れを制御
-
所有権(Ownership)と借用(Borrowing):メモリ管理の独自ルール
これらを正しく組み合わせることで、安全で高速なプログラムを作ることができます。
よく使われるRustのツールとライブラリ
Rust開発では、次のようなツールやライブラリがよく使われます。
-
Cargo:プロジェクト管理やパッケージ管理をするツール
-
Serde:データの保存や変換(シリアル化・デシリアル化)を簡単にするライブラリ
-
Tokio:ネットワーク処理などを非同期で実行できる仕組み
-
Actix-web:高速なWebサーバーを作るためのフレームワーク
-
Rocket:書きやすく使いやすいWebアプリ向けフレームワーク
-
Clippy:コードの品質チェックをしてくれるツール
これらを使いこなすことで、よりスムーズに本格的な開発ができるようになります。
Rustプログラムを作る流れ
Rustを使ってプログラムを書く基本的な流れは次の通りです。
-
Rustをインストールする(rustupを使う)
-
新しいプロジェクトを作成する(
cargo new プロジェクト名
) -
必要なライブラリを設定する(Cargo.tomlを編集)
-
コードを書く(所有権などに注意)
-
テストを行う(単体テストや統合テスト)
-
ビルドして実行ファイルを作成する(Cargoで管理)
Rustはコンパイル時に細かくエラーをチェックしてくれるので、バグを早い段階で見つけやすい特徴があります。
Rustを学ぶメリットと気をつけたい点
Rustを学ぶことで次のようなメリットがあります。
-
メモリ管理が安全な高性能プログラムが作れる
-
マルチスレッド並行処理が得意
-
WebAssemblyやクロスプラットフォーム開発にも向いている
-
明示的なエラーハンドリングがしっかり身につく
一方で、Rust特有の「所有権」や「ライフタイム」の考え方は、最初は少し難しく感じるかもしれません。
しかし、これらを理解することで、将来どんなプログラムを書くときにも役立つ強い土台ができます。
サンプルコード
Rustの基本をつかむための簡単な例を紹介します。
変数と条件分岐の例
fn main() {
let age = 20;
if age >= 18 {
println!("成人です。");
} else {
println!("未成年です。");
}
}
ループ処理の例
fn main() {
for i in 0..5 {
println!("{}回目のループです。", i);
}
}
関数定義と呼び出しの例
fn greet(name: &str) -> String {
format!("こんにちは、{}さん!", name)
}
fn main() {
let message = greet("太郎");
println!("{}", message);
}
所有権と借用の基本例
fn main() {
let s = String::from("Hello");
print_string(&s);
println!("{}", s); // sは引き続き使える
}
fn print_string(s: &String) {
println!("{}", s);
}
このような例を通して、Rustならではのルールに慣れていきましょう。
用語まとめ
Rust
安全性とスピードを重視して作られたシステムプログラミング言語。
所有権(Ownership)
データの持ち主を明確にすることで、メモリ管理を安全に行う仕組み。
借用(Borrowing)
データの所有権を移さずに一時的に利用する方法。
Cargo
Rustのプロジェクト管理やビルドを助ける標準ツール。
おわりに
Rustは、これからのシステム開発やWebAssembly開発などでますます重要になる言語です。