結論:Rust は「C/C++ 並みに速いのに、メモリのバグを実行前にコンパイラが止めてくれる」言語です。だから CLI ツール・WebAssembly・組み込み・高速なサーバー・OS/ブラウザなどの基盤ソフトに使われます。 ガベージコレクタなしで安全を保証する仕組みが、そのまま用途を決めています。
Rust は結局「何に使う」言語なのか
Rust の使い道は多彩に見えますが、根っこは1つです。「速さ」と「安全(メモリのバグが起きない)」を同時に欲しい場所で使われます。ふつうこの2つは両立しにくく、速さを取ると C/C++ のようにクラッシュや脆弱性のリスクが上がり、安全を取ると Java や Python のようにガベージコレクタ(自動メモリ回収)のぶんだけ遅く・重くなります。Rust はこの綱引きを、実行時ではなくコンパイル時のチェックで解いた点が新しいのです。
具体的な得意分野はだいたい次のとおりです。
- コマンドラインツール(CLI) ― 起動が速く、単一の実行ファイルとして配れる。
ripgrep(高速grep)などが有名。 - WebAssembly(Wasm) ― ブラウザ上でネイティブ級の速さで動かす。画像処理・ゲーム・エディタなど。
- サーバー/バックエンド ― 低遅延・省メモリな Web API やネットワークサービス。
- 組み込み・OS・ドライバ ― ガベージコレクタを持てない環境。Linux カーネルにも Rust が入り始めています。
- 基盤ソフト ― ブラウザエンジンやデータベース、ブロックチェーンなど「壊れたら困る」中核。
まず「Rust がどんなコードなのか」を1分で体感したい人は、はじめての Rust ― Hello, Cargo をブラウザでそのまま実行してみてください(無料・登録不要・環境構築なし)。Rust コースは第1回から実際にコードを走らせながら進められます。
なぜ「メモリ安全 × 高速」が武器になるのか
プログラムが使うメモリには大きく2つの置き場所があります。スタック(速いが小さい)とヒープ(大きいが管理が要る)です。C/C++ ではヒープの後始末を人間が手で書くため、「解放し忘れる(メモリリーク)」「解放済みをまた使う(クラッシュ・脆弱性)」といった事故が絶えません。ここは多くのソフトのバグと脆弱性の温床です。
Rust は所有権(ownership)という仕組みで、「そのメモリを誰が持っていて、いつ片付けるか」をコンパイラが追跡します。ルールを破るコードはそもそもコンパイルが通りません。つまり実行して初めて分かるのではなく、書いた瞬間にエラーとして弾かれます。これが「実行時に落ちない」「GC を積まなくていい=速い・軽い」という Rust の性格を作っています。
この土台は、次のレッスンをブラウザで動かすと腑に落ちます(いずれも実行できる回です)。
- 値はどこに置かれるか ― Copy 型とそうでない型:スタックとヒープの違いを実際のコードで見る。
- 所有権の3つのルール:Rust の心臓部を最短で。
- ムーブ(move)― 所有権が移る:値の持ち主が移る様子を実行して確認。
所有権そのものの考え方をもっと丁寧に知りたい場合は、別記事 Rustの所有権がわからない人へ にまとめてあります。この記事では「所有権があると何ができるのか(=用途)」に集中します。
得意分野をもう少し具体的に
1. CLI ツール・自動化
起動が一瞬で、依存を含めた単一バイナリとして配れるのが強みです。書き味も、map・filter のような関数型的な処理でデータをすっきり変換できます。イテレータアダプタ ― map・filter・collect をブラウザで動かすと、この気持ちよさが分かります。
2. WebAssembly(ブラウザで動く高速処理)
Rust は Wasm への出力が得意で、「重い計算だけ Rust、画面は JavaScript」という組み合わせがよく使われます。ブラウザ内の画像編集・音声処理・ゲームなどが代表例です。
3. サーバー・並行処理
たくさんの接続を同時に、少ないメモリでさばく用途に向きます。しかも Rust では所有権のルールがそのままスレッド安全を保証し、「データ競合」がコンパイル時に弾かれます。この考え方は 恐れないマルチスレッド ― 所有権が並行を安全にする(読み物)で解説しています。
4. 組み込み・OS・基盤ソフト
ガベージコレクタを積めない・1バイトも無駄にできない世界です。安全と速さの両立が効くのはまさにここで、Rust が「システムプログラミング言語」と呼ばれる理由です。
つまずきやすいところ(用途を選ぶ前に知っておく)
Rust の学習コストは正直に言って低くありません。多くの人が最初に詰まるのは、所有権と借用のコンパイルエラーです。ただしこれは「難しくて動かない」のではなく、危険なコードをコンパイラが未然に止めているぶんの手応えです。
E0382: borrow of moved value ― ムーブ後に使った… 一度渡した値をまた使おうとした。E0499: 可変借用が二重… 同じデータを2箇所から同時に書き換えようとした。
こうしたエラーは Rust では日常で、意味と直し方さえ分かれば怖くありません。代表的なものは Rustのエラー逆引き に「メッセージ・出るコード・直し方」でまとめてあります。困ったら辞書のように引いてください。
まず何をすればいい?
「Rust が何に使えるか」が分かったら、次は手を動かして向き不向きを自分で確かめるのがいちばんです。Rust コースは第1回から所有権・借用・イテレータまで、多くの回をブラウザ内で実行しながら進められます(無料・登録不要)。
- 最初の一歩 → はじめての Rust ― Hello, Cargo
- 用途を支える核 → 所有権の3つのルール
- 実務の品質を守る → テスト ― #[test]・cargo test・assert!
- 学習順を知りたい → Rust独学ロードマップ
- Go と迷っている → GoとRustの違いは?どっちを学ぶべきか
- コース全体を見る → Rust コース