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日

#228Cargo 插件

Download history 391/week @ 2024-03-14 145/week @ 2024-03-21 81/week @ 2024-03-28 85/week @ 2024-04-04 38/week @ 2024-04-11 35/week @ 2024-04-18 48/week @ 2024-04-25 28/week @ 2024-05-02 21/week @ 2024-05-09 23/week @ 2024-05-16 16/week @ 2024-05-23 17/week @ 2024-05-30 36/week @ 2024-06-06 16/week @ 2024-06-13 18/week @ 2024-06-20 7/week @ 2024-06-27

80 每月下载量

MIT 许可证

90KB
2.5K SLoC

cargo-wizard 构建状态 最新版本

Cargo 子命令,将配置配置文件模板应用到你的 Cargo 项目中,以配置项目以实现最大性能、快速编译时间或最小二进制文件大小。

Demo of cargo-wizard

动机

我经常看到 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 - 最小化编译时间
  • 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向导,它通过一系列对话框引导您完成某些过程。

贡献

欢迎贡献 :)

可能未来的功能

  • 允许配置内存分配器
  • 将模板加载到磁盘上以便更容易共享

致谢

  • toml_edit:一个可以保持原始格式修改TOML文件的出色crate。
  • inquire:用于构建交互式TUI对话框和提示的漂亮crate。

许可证

MIT

依赖关系

~8–19MB
~267K SLoC