通过在本地和远程恢复缓存的编译器工件来减少编译时间
通过恢复 Rust、C/C++ 和 CUDA 的缓存编译器工件来加快构建速度,使用内容寻址存储和远程后端。来自 Zondax AG 的 Kache 通过 RUSTC_WRAPPER 插入 Cargo,并支持 S3、GCS 和 OCI 存储。它针对需要更快本地开发和 CI/CD 运行的开发人员和 DevOps 工程师,提供自动垃圾收集和强化提取,以保持缓存的可靠性和空间效率。
kache 如何重用先前的构建输出以缩短编译时间
Kache 将编译器输出存储在内容寻址的本地或远程存储中,并恢复匹配的工件,而不是重新运行编译器。它支持 Rust、C/C++ 和 CUDA 编译器,并作为 Cargo 工作流的 RUSTC_WRAPPER。该设计意味着相同的编译输入从缓存中返回相同的工件,这是减少开发者机器和 CI 运行器上重复编译工作的机制。
它在正常操作期间如何影响系统资源
缓存操作通过去重和自动垃圾收集保持磁盘使用效率,因此本地存储不会无限增长。远程后端将工件移出主机到 S3、GCS 或 OCI 注册表,从而减轻开发者机器的存储压力。该工具读取并恢复工件,而不是重建它们,因此在缓存命中期间节省了 CPU 和编译时 I/O。
kache 是否在构建环境中安全运行
强化提取防止路径遍历和相关风险,这是该工具中的一项明确安全措施。对于获取和解压工件的操作,kache 在将文件写入工作区之前应用安全处理检查。这些控制使其适合 CI/CD 运行器和共享缓存,在这些地方,不受信任的输入可能会覆盖敏感路径。
设置和日常使用的技术性如何
安装和集成期望开发者熟悉工具链。在 Windows 上,它支持 clang-cl,并且在与 Cargo 一起使用时需要 Rust 1.95 或更新版本。开发者初始化一次包装器,然后继续使用标准的 cargo 命令,因此日常使用是以命令行为导向,面向工程师和 DevOps 员工,而不是非技术贡献者。
针对以构建为重点的团队的实用加速,具有一个显著的兼容性警告
Kache 适合管理 Rust、C/C++ 或 CUDA 构建的工程师,并希望通过内容寻址存储和云后端实现可预测的缓存命中。它的安全检查和垃圾回收使其适合共享 CI 环境。主要的权衡是 Windows 编译器支持:它不缓存 MSVC cl.exe 编译器,这限制了依赖该工具链的团队的价值。