「Google版Rust」で学ぶ、信頼性と安全性を高めるコーディング


「Google版Rust」で学ぶ、信頼性と安全性を高めるコーディング

google/comprehensive-rust

2025-09-03

このコースは、単なる文法解説にとどまらず、実用的な視点でRustを学ぶことができます。

信頼性の高さ
GoogleのAndroidチームという、世界トップクラスのエンジニアたちが実際に使っている教材です。内容の質と正確性は非常に高いと言えます。

実践的な内容
Android開発という具体的なプロジェクトに関連する内容が含まれているため、理論だけでなく、現実世界での応用方法を学ぶことができます。

体系的な学習
ゼロからRustを学ぶ人向けに、段階的にカリキュラムが組まれています。自分で何から学べばいいか迷う必要がありません。

コミュニティでの活用
チームや社内でRustの知識を共有・普及させるための教材としても使えます。新人研修や社内勉強会でそのまま利用できるでしょう。

このコースは、Gitリポジトリとして公開されています。以下の手順でローカル環境に導入して学習を始められます。

PCに以下のソフトウェアがインストールされているか確認してください。

Git

Rust(rustup ツールチェインマネージャーを推奨)

ターミナルを開き、以下のコマンドを実行してリポジトリをクローンします。

git clone https://github.com/google/comprehensive-rust.git
cd comprehensive-rust

クローンしたディレクトリ内に、PDFやウェブサイト形式の教材、演習問題、サンプルコードが含まれています。

content ディレクトリに主要な教材のMarkdownファイルがあります。

exercises ディレクトリに、学習した内容を試すための演習問題があります。

solutions ディレクトリには、演習問題の解答例が含まれています。

リポジトリのREADMEファイル(README.md)に、学習の進め方や環境設定についての詳細な説明があります。それに従って学習を進めていきましょう。

このコースの演習問題は、Rustの主要な概念を実践的に学ぶように設計されています。たとえば、所有権(Ownership)というRustの最も重要な概念を学ぶための演習問題を見てみましょう。

exercises/01_intro/01_ownership.rs のようなファイルに、以下のようなコードがあるとします。

// 以下のコードには所有権に関する問題があります。
// コンパイルエラーを修正して、所有権の概念を理解しましょう。

fn main() {
    let s1 = String::from("hello");
    let s2 = s1; // ★ ここで s1 の所有権が s2 に移動します

    println!("s1 is {}", s1); // ★ コンパイルエラー! s1はもう使えません
}

この問題を解決するには、s1の所有権を移動させるのではなく、新しい文字列をクローン(複製)する必要があります。

fn main() {
    let s1 = String::from("hello");
    let s2 = s1.clone(); // ★ .clone() メソッドを使って複製します

    println!("s1 is {}", s1); // これでエラーなくコンパイルできます
    println!("s2 is {}", s2);
}

このように、実際に手を動かしてエラーを修正することで、座学だけでは得られない深い理解が得られます。このコースには、このような実践的な演習が豊富に用意されているため、Rustの強力な概念をしっかりと身につけることができるでしょう。


google/comprehensive-rust




エンジニアの空模様も快晴に!動画アプリ開発の教科書、NewPipeの世界へようこそ

今回ご紹介するのは、GitHubで非常に高い人気を誇るオープンソース・プロジェクト、NewPipeです。エンジニアの視点から見ると、このプロジェクトはまさに「快晴」のような、学びと発見の宝庫なんですよ。NewPipeは、YouTubeなどの動画プラットフォームを、公式APIを使わずに視聴できるAndroid用の軽量フロントエンドです。


Rust製ゲームエンジン「Bevy」入門:シンプルなレシピで始めるゲーム開発

Bevyは、Rustという銘柄の最高級スピリッツを使って作られた、とびきりシンプルで爽やかなゲームエンジンです。普通のゲームエンジンは、いろいろな素材が混ざり合って、ちょっと複雑で重たいカクテルになりがちですが、Bevyはまるでジンとトニックのように、シンプルだけど奥深い味わいが特徴です。


「彼女の下着は何色?」という問いにAIが即答できる理由 — CocoIndexによる動的データ処理

「彼女の下着は何色?」という、一見すると AI が答えに窮しそうな(あるいはプライバシーや文脈に依存する)「特定の、移り変わる、あるいは非常に個人的なデータ」を扱う場面で、なぜこのツールが最強の味方になるのか、という切り口でお話しします。一言でいうと、「情報の更新(増分更新)に特化した、爆速の AI データ整理棚」です。


pathwaycom/pathway タイトル集

簡単に言うと、リアルタイムでデータを処理できるPythonのETLフレームワークです。ETLとは、Extract(抽出)、Transform(変換)、Load(読み込み)の頭文字をとったもので、データ処理の基本となるプロセスです。普通のETLは、バッチ処理といって、ある程度のデータをまとめて処理することが多いですが、pathwaycom/pathwayはストリーム処理が得意です。つまり、データが流れてくるそばから、リアルタイムで処理してくれるんです。


【SSD救済】Rust製の超高速兵器「czkawka」で重複ファイルを掃討せよ

君のSSDを食いつぶす「重複ファイルの群れ」を効率よく掃討し、限られたリソース(ディスク容量)を確保するための最強の武器、czkawka(チカフカ)の使い方を伝授しよう。これはただのファイルクリーナーじゃない。Rust製の超高速な「タクティカル・クリーニングツール」だ。


【エンジニア必携】AIコードアシスタントを「一元管理」!cc-switchで開発フローを劇的に効率化

コントのようなやり取りで解説するのは少し難しいですが、「farion1231/cc-switch」というツールの、ソフトウェアエンジニアにとっての価値、導入方法、そしてサンプルコードの考え方を、コンビニ店員と常連のお客さんのようなフレンドリーな会話調で、分かりやすく丁寧にお伝えしますね!


RustでSpotifyデバイスを自作する魔法:Librespot解説

このライブラリは、SpotifyのAPIとは異なるアプローチでSpotifyの機能を統合したい場合に非常に役立ちます。APIは提供されている機能に限定されますが、LibrespotはSpotify Connectのプロトコルレベルで動作するため、より低レベルな操作が可能になります。


コード探偵の事件簿:ReVancedが解き明かすアプリのリバースエンジニアリング

皆さん、こんにちは。名探偵の皆さん、お集まりいただきありがとうございます。さて、今回の事件は、とあるAndroidアプリにまつわる、巧妙に仕組まれた密室殺人事件です。被害者は、誰もが知るあの動画配信アプリ。彼は、数々の「制限」という名の鎖に縛られ、身動きが取れない状態にありました。しかし、今宵、その鎖を断ち切り、新たな命を吹き込む「パッチ」という名の秘密道具の存在が明らかになったのです。


モビルスーツ級の高性能!k2-fsa/sherpa-onnx徹底解剖と実戦導入ガイド

「連邦の白いヤツ」...ではなく、ソフトウェアエンジニアの皆さん!今回は、オフラインでの音声処理を強力にサポートするライブラリ k2-fsa/sherpa-onnx について、その能力と活用法を、さながらモビルスーツの機能解説のように、分かりやすく、フレンドリーに解説していきます!