#nix-package #nix-build #package-manager #builder #projects #cargo #nbuild

构建 cargo-nbuild

使用 nix 软件包管理器的 Rust 构建器

3 个版本

0.1.2 2023 年 6 月 19 日
0.1.1 2023 年 6 月 9 日
0.1.0 2023 年 6 月 9 日

#241 in 构建工具

Apache-2.0

135KB
3K SLoC

一个使用 nix 软件包管理器中的 buildRustCrate 的 cargo 构建器。

这带来以下好处

  • 沙盒构建:项目 A 中的恶意依赖项不能更改文件系统或向将影响另一个项目 B 构建的库中注入源代码。
  • 共享缓存:如果项目 A 依赖于某些 crate,比如 tokio,具有功能 macrosrt,那么此构建器将单独缓存每个依赖项。因此,如果项目 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