#build #build-tool #tool #rust

build truck-rs

为 cargo 提供加速

3 个不稳定版本

0.2.5 2022年4月24日
0.2.0 2022年4月24日
0.1.0 2022年4月24日

#403 in 构建工具

MIT 许可证

12KB
204

Truck

为 Supercharging cargo

它做什么?

它基于 这个 Reddit 评论。它提高了 cargo 的构建速度。

与 Flex 相比,它的表现如何?

两者都做同样的事情,但 Truck 还提供了 mold 支持,并且使用更少的代码行数来实现相同的目的。

为什么它存在?

这是为新手创建的,用于他们的第一个 PR。此项目很简单,可以扩展。(例如,添加彩色输出或修复 Readme.md 文件中的错误,如果 PR 有意义,我将推送到仓库)。它仅用于教育目的。

它是如何工作的?

它创建了一个 .cargo/config.toml 文件和一个 rust-toolchain.toml 文件,用 lld(Linux)或 zld(MacOS)和 mold(Linux)替换默认的链接器,并用 sccache 替换 ccache。(有关更多详细信息,请参阅 Reddit 评论)

要求

  • sccache: cargo install sccache
  • zld(Mac 用户):brew install michaeleisel/zld/zld
  • lld(Linux 用户):使用您的包管理器安装(对于 Arch 用户,sudo pacman -Syu lld)
  • mold(Linux 用户):使用您的包管理器安装(对于 Arch 用户,sudo pacman -Syu mold)
  • Rust Nightly(可选):但对于 -ffn 选项是强制性的

如何安装

cargo install truck-rs 确保 $CARGO_HOME/bin 在路径中

快速入门

  • truck [TRUCK FLAGS] 对现有项目创建优化
  • truck new my_file [TRUCK FLAGS] 与 cargo new my_file 相似,但带有 truck 优化
  • truck init my_file [TRUCK FLAGS] 与 cargo init 相似,但带有 truck 优化

运行 cargo build 或运行 以查看魔法

Truck 标志

  • noflags: 默认构建
  • -f: 快速(使用 zld 和 lld)
  • -ff: 比 -f 更快(使用 mold)
  • -ffn: 最快(使用 mold 和 sccache)

警告

  • 与舰队类似,如果您不导入多个箱子,则无法使用。
  • 使用卡车将替换您现有的 .cargo/config.toml 和 .rust-toolchain.toml 文件。
  • 此外,我们也不能保证它将成为 cargo 的完美替代品,因为 cargo 默认不使用 mold 或 lld 或 zld 或 sccache 有其原因。(阅读 Reddit 评论以获取更多详细信息)

许可协议

MIT

如果您发现任何可以提升 Rust 性能的方法,请将其添加到 optimisations.md 中。

依赖项

~0.6–1.2MB
~27K SLoC