Rustのエコシステムにおいて、ライブラリのドキュメントを自動生成・公開してくれるdocs.rsは、開発者にとって不可欠なインフラストラクチャです。
しかし、2026年5月1日より、このサービスのビルド挙動に破壊的な変更が加えられることになりました。
これまで、個別の設定がないクレートに対しては5つのターゲット向けにドキュメントが生成されていましたが、今後はデフォルトで単一のターゲットのみがビルド対象となります。
この変更は、リソースの効率的な利用とビルド時間の短縮を目的としたものであり、多くのRust開発者に影響を与える可能性があります。
ビルド対象ターゲットの削減とその背景
docs.rsではこれまで、Cargo.tomlのメタデータでターゲットリストが明示的に定義されていない場合、5種類の主要なターゲット(Linux、macOS、Windowsなど)に対して自動的にビルドを実行していました。
しかし、調査の結果、ほとんどのクレートはターゲットごとに異なるコードをコンパイルしているわけではなく、複数のターゲットに対して個別にドキュメントを生成するメリットが少ないことが判明しました。
2026年5月1日以降は、明示的なリクエストがない限り、ビルドされるのはデフォルトターゲットの1つのみとなります。
これにより、docs.rs全体のビルド負荷が軽減され、結果として各クレートのドキュメント公開までの待ち時間が短縮されることが期待されています。
変更の適用範囲
今回の仕様変更の影響を受けるのは、以下のケースです。
| 項目 | 内容 |
|---|---|
| 新規リリース | 2026年5月1日以降にパブリッシュされる新しいバージョン |
| 再ビルド | 過去にリリースされたバージョンを、docs.rs側で再ビルドする場合 |
既存のすでに生成済みのドキュメントが即座に削除されることはありませんが、今後メンテナンスや再ビルドが発生した際には新しいルールが適用されます。
デフォルトターゲットの選択とカスタマイズ
特に設定を行わない場合、docs.rsはビルドサーバーの標準環境である x86_64-unknown-linux-gnu をデフォルトターゲットとして使用します。
もし、特定のプラットフォーム(例:WindowsやmacOS)を主な対象としているクレートであれば、このデフォルト設定を変更することが推奨されます。
デフォルトターゲットの変更は、Cargo.toml内の [package.metadata.docs.rs] セクションで行います。
[package.metadata.docs.rs]
# デフォルトのビルドターゲットをmacOSに変更する例
default-target = "x86_64-apple-darwin"
複数ターゲット向けのドキュメント生成方法
条件付きコンパイル(cfgアトリビュート)を多用しており、プラットフォームごとに異なるAPIを提供しているようなクレートの場合、引き続き複数のターゲットに対してビルドを行う必要があります。
その場合は、targetsリストを明示的に定義してください。
[package.metadata.docs.rs]
# ビルド対象とするターゲットのフルリストを定義
targets = [
"x86_64-unknown-linux-gnu",
"x86_64-apple-darwin",
"x86_64-pc-windows-msvc",
"i686-unknown-linux-gnu",
"i686-pc-windows-msvc"
]
このように targets を設定した場合、docs.rsはリストに記載されたターゲットに対してのみビルドを実行します。
以前の「デフォルトの5つのターゲット」という概念は適用されなくなるため、必要なものはすべて列挙する必要があります。
なお、Rustツールチェーンで利用可能なターゲットであれば、引き続き任意のものを指定可能です。
まとめ
2026年5月1日から実施されるdocs.rsの仕様変更は、多くの開発者にとってはビルドの高速化という恩恵をもたらしますが、クロスプラットフォーム対応を重視するクレートの維持者にとっては、設定の見直しが必要な重要なアップデートとなります。
ご自身のクレートがプラットフォーム固有のAPIを提供している場合は、あらかじめ Cargo.toml のメタデータを確認し、適切なターゲットが指定されているかチェックしておくことをお勧めします。
この変更により、docs.rsがより持続可能で効率的なサービスへと進化していくことが期待されます。
