Repolode
kunobi-ninja

kunobi-ninja/kache

面向 Rust、C/C++ 和 CUDA 的编译器缓存,跨工作树和 CI 复用匹配的构建产物,减少重复编译。

Star
1,369
Fork
73
未关闭 Issue
30
最近提交
24小时前

这是什么?

Kache 是一个编译器缓存,会按输入、工具链和构建参数生成缓存键保存编译产物,后续构建命中相同键时直接恢复,无需重新编译。它支持 Linux、macOS 和 Windows 上的 Rust、C/C++ 以及单源文件 CUDA 编译,并可在 git 工作树和 CI 之间共享结果。

相同内容的输出只在磁盘预算内保存一份。在支持写时复制克隆的文件系统上,恢复的产物与缓存共享磁盘块。缓存键相同的编译会共享同一个进行中的构建,调度器还会控制编译进程的并发节奏。

本地缓存可以独立使用,远程存储支持 S3 兼容存储、Google Cloud Storage、共享文件系统和 OCI 镜像仓库。`kache explain` 等命令可以说明某次构建为何未命中,不支持的编译调用则照常执行。

核心功能

  • 01从缓存恢复符合条件的 Rust、GCC、Clang 和 CUDA 编译产物。
  • 02相同内容的输出在可配置的磁盘预算内只保存一份。
  • 03在支持写时复制的文件系统上通过克隆共享磁盘块。
  • 04缓存键相同的进行中构建会被合并共享。
  • 05远程存储支持 S3、Google Cloud Storage、共享文件系统和 OCI 镜像仓库。
  • 06通过 `kache explain` 解释未命中原因,并可用 `kache monitor` 实时查看构建活动。

适用场景

  • 在同一仓库的多个 git 工作树之间加速重复的 Rust 构建。
  • 通过远程缓存在多次 CI 运行之间共享编译产物。
  • 多个工作树构建相同的大型依赖树时减少磁盘占用。
  • 为使用 Make 或 CMake 的 C/C++ 或 CUDA 项目缓存编译结果。

快速上手

  1. 1

    使用 Cargo 安装 Kache v2.0.0

    cargo install kache --locked --version 2.0.0
  2. 2

    为构建工具启用 Kache(应用前会先显示更改)

    kache init
  3. 3

    通过本地探测检查安装配置

    kache doctor --probe

使用前须知

  • 通过 Cargo 安装需要 Rust 1.95 或更高版本。
  • Rust 可执行文件和构建脚本运行默认仅在 Linux 和 macOS 上缓存;Windows 上的缓存支持更有限。

标签

#build-cache#rust#compiler-cache#ci#hardlinks#s3#c-cpp#cuda#caching#developer-tools

常见问题

kache 是什么?
面向 Rust、C/C++ 和 CUDA 的编译器缓存,跨工作树和 CI 复用匹配的构建产物,减少重复编译。 Kache 是一个编译器缓存,会按输入、工具链和构建参数生成缓存键保存编译产物,后续构建命中相同键时直接恢复,无需重新编译。它支持 Linux、macOS 和 Windows 上的 Rust、C/C++ 以及单源文件 CUDA 编译,并可在 git 工作树和 CI 之间共享结果。
kache 可以免费使用吗?用的什么许可证?
kache 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
kache 还在维护吗?
活跃维护中。kache 最近一次提交是在 2026年11月6日。
kache 适合用来做什么?
在同一仓库的多个 git 工作树之间加速重复的 Rust 构建。 通过远程缓存在多次 CI 运行之间共享编译产物。 多个工作树构建相同的大型依赖树时减少磁盘占用。 为使用 Make 或 CMake 的 C/C++ 或 CUDA 项目缓存编译结果。
kache 怎么安装和运行?
使用 Cargo 安装 Kache v2.0.0: cargo install kache --locked --version 2.0.0 为构建工具启用 Kache(应用前会先显示更改): kache init 通过本地探测检查安装配置: kache doctor --probe
在哪里获取 kache?
源代码和安装说明在 GitHub 上:https://github.com/kunobi-ninja/kache

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目