这个项目能做什么

Reprobuild 是一个统一的构建系统,它使用单一的、经过编译时验证的构建图取代了 Dockerfiles、Nix flakes、Makefiles 和 CI 流水线等碎片化工具。其核心创新在于不仅将文件,还将状态(如运行中的服务、系统设置或云资源)建模为图中的节点。这使得构建、开发环境和基础设施之间能够实现一致的缓存、密封性和回滚。 关键特性包括通过文件系统监控(通过 io-mon)实现自动依赖发现、跨相互依赖项目的热代码重载(例如在构建 Firefox 时编辑 Cairo),以及通过 `repro develop` 实现零配置开发。项目定义在一种强类型的 Nim DSL (`repro.nim`) 中,从而支持 IDE 插件以及对工具版本、构建步骤和服务配置的编译时验证。 它支持 Windows、Linux 和 macOS;与 Terraform providers 集成;并提供分布式构建和测试分片。与 Bazel 或 Nix 不同,它以单个原生二进制文件的形式交付,无需守护进程或远程服务。Reprobuild 通过对输入进行内容寻址、验证字节级输出相等性以及自动生成 SBOM 和证明来强制执行可复现性。 它还驱动着 ReproOS,这是一个完全使用相同的图模型从源代码构建的 Linux 发行版。CLI 命令涵盖了构建、测试、服务管理、工作区同步和本地基础设施管理。该系统采用 MIT 许可证,并为托管缓存和企业用途提供可选的商业服务。