Googleは、Android、ChromeOS、Fuchsiaを含む多様なプロジェクトのエコシステム全体で一貫性を確保するため、Rustプログラミング言語の公式スタイルガイドを公開しました。多くのRustフォーマット慣習は`rustfmt`のようなツールによって自動的に処理されますが、このガイドは外観の美しさにとどまらず、API設計、コードの構成、および実装パターンまでを網羅しています。主な目標は、長期的な保守性と可読性を優先し、コードのライフサイクルを通じて幅広いエンジニアがアクセスできるようにすることです。

このガイドの最も際立った特徴の一つは、「大規模な変更(LSCs)」への焦点です。Googleは巨大なコードベースを管理しているため、このガイドでは「リファクタリングに優しい」パターン、つまり自動ツールによって容易に操作できるパターンを推奨しています。例えば、Chromiumにおける特定のライブラリタイプに対して、ソースファイルがネストされた構造ではなく単一のディレクトリに配置される「フラットファイルレイアウト」を提案しています。このアプローチは、オープンソースプロジェクトで通常見られるCargoのディレクトリ構造とは異なる場合がありますが、並列コンパイルとビルドキャッシュのパフォーマンスを向上させるために設計されています。

また、このガイドでは、深いコピーよりも借用を優先することや、公開APIにおいて`bool`型よりも`enum`型を使用することなど、所有権とAPI設計に関する具体的な指示を提供しています。広範な再利用性のためにAPI設計ルールを厳格に遵守しなければならない「ライブラリコード」と、簡潔さと直接性を重視する「アプリケーションコード」を区別しています。さらに、このガイドでは、下流の消費者を壊すことなく将来のアップデートを容易にするための公開enumへの`#[non_exhaustive]`の使用や、コードの安全性と明快さを向上させるための「チェックしてからアンラップ」ロジックよりもパターンマッチングを優先することなど、技術的なニュアンスにも対処しています。

ガイドの大部分は広範なRustエコシステムと一致していますが、モジュール構成や命名規則に関する特定の要件はGoogleの内部インフラに合わせて調整されています。これらのルールを成文化することで、Googleは「バイクシェディング(些細なスタイルの不一致に対する議論)」を減らし、コードレビュー中にフォーマットの選択について議論するのではなく、エンジニアが複雑な問題の解決に集中できる明確な品質基準を提供することを目指しています。このガイドは、Googleのインフラ内でスケールするRustが、すべてのコントリビューターにとって予測可能で保守可能な状態を維持するための基礎的な文書として機能します。