3 个不稳定版本
0.2.5 | 2022年4月24日 |
---|---|
0.2.0 | 2022年4月24日 |
0.1.0 | 2022年4月24日 |
#403 in 构建工具
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