4 个版本
0.2.2 | 2024年3月11日 |
---|---|
0.2.1 | 2024年3月10日 |
0.2.0 | 2024年3月8日 |
0.1.0 | 2024年3月3日 |
#228 在 Cargo 插件
80 每月下载量
90KB
2.5K SLoC
cargo-wizard
Cargo 子命令,将配置和配置文件模板应用到你的 Cargo 项目中,以配置项目以实现最大性能、快速编译时间或最小二进制文件大小。
动机
我经常看到 Rust 用户在网上询问如何最好地配置 Cargo 以获得例如最快的编译时间、最佳的运行时性能或最小的二进制文件大小。虽然这些信息可以在各种书籍、仓库或博客文章中找到,但是每次我们想要配置一个新的 Cargo 项目时,都很难找到这些信息。
这个工具试图自动化这个过程,使其更容易。
安装
$ cargo install cargo-wizard
使用方法
- 交互式模式(CLI 对话框,引导你完成过程)
$ cargo wizard
- 非交互式模式(直接将预定义的模板应用到你的 Cargo 工作空间)
$ cargo wizard apply <template> <profile> # For example, apply `fast-runtime` template to the `dist` profile $ cargo wizard apply fast-runtime dist
你可以通过使用带有夜间 Cargo(例如,cargo +nightly wizard
)或使用 --nightly
标志来启用需要夜间编译器的附加配置选项。
请注意,您应该在Cargo工作区的一部分目录中执行cargo wizard
。然后,它将应用配置选项到该工作区。
功能
cargo-wizard
可以根据一组预定义的模板创建或修改您的Cargo.toml
清单和.cargo/config.toml
文件中的RUSTFLAGS。
fast-compile
- 最小化编译时间- 禁用调试信息生成并使用更快的链接器。
- 在夜间模式下,它还启用了Cranelift代码生成后端和并行前端。
fast-runtime
- 最大化运行时性能- 启用LTO和其他旨在最大化运行时性能的设置。
min-size
- 最小化二进制大小- 类似于
fast-runtime
,但使用针对小二进制大小优化的优化标志。
- 类似于
您还可以在交互式模式下修改这些模板,以构建您自己的自定义模板。
注意事项
- 此工具应用的配置非常主观,可能无法完美地适应所有用例。`
cargo-wizard
`主要用于提高Cargo配置文件和配置选项的可发现性,帮助您找到最适合您用例的理想设置。 - `
cargo-wizard
`目前仅修改`Cargo.toml
`和`config.toml
`。还有一些其他可以配置的内容以实现例如更小的二进制文件,但这些目前不在该工具的范围内,至少目前不是。 - `
cargo-wizard
`目前忽略了与性能无关的Cargo设置。 - Cargo配置(`
config.toml
`)更改应用于全局的`build.hostflags
`设置,因为按配置文件RUSTFLAGS仍然是不稳定的。
灵感
为什么叫`
wizard
`?这个名字灵感来源于GUI向导,它通过一系列对话框引导您完成某些过程。
贡献
欢迎贡献 :)
可能未来的功能
- 允许配置内存分配器。
- 将模板加载到磁盘上以便更容易共享
致谢
许可证
依赖关系
~8–19MB
~267K SLoC