docs.rs:默认情况下构建更少的目标
Source: Rust Blog
默认构建更少的目标
在 2026-05-01,docs.rs 将对其构建行为进行一次破坏性更改。
- 当前行为:如果 crate 在其
docs.rs元数据中没有定义targets列表,docs.rs 会为默认的五个目标构建文档。 - 新行为(自 2026-05-01 起生效):除非显式请求额外目标,docs.rs 只会为默认目标构建文档。
这是自 2020 年首次引入的更改的下一步,当时 docs.rs 添加了选择更少构建目标的支持。大多数 crate 并不会为不同目标编译不同的代码,因此默认构建更少的目标更符合大多数发布的需求。这也能缩短构建时间并节省 docs.rs 的资源。
此更改仅影响
- 新的发布
- 旧发布的重新构建
默认目标是如何选择的?
如果你没有设置 default-target,docs.rs 将使用其构建服务器的目标:
x86_64-unknown-linux-gnu你可以在 docs.rs 元数据中设置 default-target 来覆盖它:
[package.metadata.docs.rs]
default-target = "x86_64-apple-darwin"如何为额外目标构建文档?
如果你的 crate 需要为默认目标之外的更多目标构建文档,请在 Cargo.toml 中显式定义完整的列表:
[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 将仅为 这些 目标构建文档。docs.rs 仍然支持 Rust 工具链中可用的任何目标;只有默认行为发生了变化。