Repolode
kunobi-ninja

kunobi-ninja/kache

Rust、C/C++、CUDA向けのコンパイラキャッシュ。worktreeやCI実行間で一致するビルド成果物を復元し、再ビルドを減らします。

スター
1,369
フォーク
73
未解決の Issue
30
最終コミット
22 時間前

これは何?

Kacheは、入力、ツールチェーン、ビルド設定をキーにビルド成果物を保存し、後続のビルドで同じキーが生成されたときに復元するコンパイラキャッシュです。Linux、macOS、Windows上でのRust、C/C++、単一ソースのCUDAコンパイルに対応し、git worktreeやCI実行間でキャッシュを共有できます。

同一の出力バイト列は、設定したディスク容量の範囲内で一度だけ保存されます。copy-on-writeクローンに対応するファイルシステムでは、復元した出力とキャッシュがディスクブロックを共有します。同じキャッシュキーのコンパイルは実行中のビルドを共有し、スケジューラーがコンパイラプロセスの実行ペースを調整します。

ローカルキャッシュだけでも利用できます。リモートストレージには、S3互換ストレージ、Google Cloud Storage、共有ファイルシステム、OCIレジストリを利用できます。`kache explain`などのコマンドでキャッシュミスの理由を確認でき、対応していないコンパイラ呼び出しは通常どおり実行されます。

主な機能

  • 01Rust、GCC、Clang、CUDAの対象コンパイラ出力をキャッシュから復元します。
  • 02同一の出力は、設定可能なディスク容量の範囲内で一度だけ保存します。
  • 03対応するファイルシステムでは、copy-on-writeクローンを使ってディスクブロックを共有します。
  • 04同じキャッシュキーのビルドを実行中に共有します。
  • 05リモートストレージとしてS3、Google Cloud Storage、共有ファイルシステム、OCIレジストリに対応します。
  • 06`kache explain`とリアルタイムの`kache monitor`でキャッシュミスの理由を確認できます。

ユースケース

  • 同じリポジトリの複数のgit worktree間で、Rustのビルドを繰り返す際の高速化。
  • リモートキャッシュを使ったCI実行間でのコンパイル済み成果物の共有。
  • 多数のworktreeで同じ大規模な依存関係ツリーをビルドするときのディスク使用量の削減。
  • 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 の実行ファイルと build script の実行結果は、デフォルトでは Linux と macOS でのみキャッシュされます。Windows ではキャッシュ機能に制限があります。

トピック

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

よくある質問

kache とは?
Rust、C/C++、CUDA向けのコンパイラキャッシュ。worktreeやCI実行間で一致するビルド成果物を復元し、再ビルドを減らします。 Kacheは、入力、ツールチェーン、ビルド設定をキーにビルド成果物を保存し、後続のビルドで同じキーが生成されたときに復元するコンパイラキャッシュです。Linux、macOS、Windows上でのRust、C/C++、単一ソースのCUDAコンパイルに対応し、git worktreeやCI実行間でキャッシュを共有できます。
kache は無料で使えますか?ライセンスは?
kache は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
kache は今もメンテナンスされていますか?
活発にメンテナンス中。kache の最終コミットは 2026年11月6日 です。
kache は何に使えますか?
同じリポジトリの複数のgit worktree間で、Rustのビルドを繰り返す際の高速化。 リモートキャッシュを使ったCI実行間でのコンパイル済み成果物の共有。 多数のworktreeで同じ大規模な依存関係ツリーをビルドするときのディスク使用量の削減。 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

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト