3 个版本
0.1.2 | 2023 年 6 月 19 日 |
---|---|
0.1.1 | 2023 年 6 月 9 日 |
0.1.0 | 2023 年 6 月 9 日 |
#241 in 构建工具
135KB
3K SLoC
一个使用 nix 软件包管理器中的 buildRustCrate
的 cargo 构建器。
这带来以下好处
- 沙盒构建:项目
A
中的恶意依赖项不能更改文件系统或向将影响另一个项目B
构建的库中注入源代码。 - 共享缓存:如果项目
A
依赖于某些 crate,比如tokio
,具有功能macros
和rt
,那么此构建器将单独缓存每个依赖项。因此,如果项目B
也使用具有相同功能和版本的tokio
,则不会重新构建该依赖项。 - 可重复性:给定相同的版本和目标,任何项目在不同机器上都会构建出完全相同的结果。
安装
cargo install cargo-nbuild
⚠️ 需要在您的系统上 安装 nix 软件包管理器。
💡 您还需要在用户特定配置或系统范围内配置中启用新的 nix 命令。
用法
从 Rust 项目运行
cargo nbuild
缺失
此构建器仍处于早期阶段,缺少功能
- 选择目标:类似于
cargo build --target ...
- 选择工作区包:仅当在工作区成员内部时构建,而不是当您位于工作区根目录时。换句话说,
cargo build --package ...
等价命令缺失。 - 远程构建:nix支持远程构建,但目前尚不可行
- 自定义Rust版本:应该可以更改用于编译的rustc版本
- ... 其他
cargo build
选项
依赖项
~9-22MB
~296K SLoC