Repolode
kunobi-ninja

kunobi-ninja/kache

Кэш компилятора для Rust, C/C++ и CUDA, который восстанавливает готовые результаты сборки между worktree и запусками CI вместо повторной компиляции.

Звёзды
1,369
Форки
73
Открытые issues
30
Последний коммит
24 часа назад

Что это?

Kache — это кэш компилятора: он сохраняет результаты сборки, привязанные к исходным данным, toolchain и настройкам сборки, а затем восстанавливает их, если при следующей сборке получается тот же ключ. Поддерживаются Rust, C/C++ и компиляция CUDA из одного исходного файла на Linux, macOS и Windows; результаты можно использовать совместно между git worktree и запусками CI.

Одинаковые байты результатов хранятся только один раз в пределах заданного лимита дискового пространства. Файловые системы с поддержкой клонирования copy-on-write позволяют восстановленным результатам сборки использовать те же блоки диска, что и кэшу. Компиляции с одинаковым ключом кэша используют одну выполняющуюся сборку, а планировщик регулирует темп запуска процессов компилятора.

Локальный кэш работает самостоятельно. Для удалённого хранилища можно использовать совместимое с S3 хранилище, Google Cloud Storage, общую файловую систему или OCI registry. Команды вроде `kache explain` показывают, почему результат не был найден в кэше; неподдерживаемые вызовы компилятора выполняются в обычном режиме.

Ключевые возможности

  • 01Восстанавливает из кэша результаты поддерживаемых компиляций Rust, GCC, Clang и CUDA.
  • 02Хранит одинаковые результаты только один раз в пределах настраиваемого лимита дискового пространства.
  • 03Использует клонирование copy-on-write, чтобы совместно использовать блоки диска в файловых системах с такой поддержкой.
  • 04Объединяет выполняющиеся сборки с одинаковыми ключами кэша.
  • 05Поддерживает S3, Google Cloud Storage, общие файловые системы и OCI registry в качестве удалённого хранилища.
  • 06Помогает разобраться в промахах кэша с помощью `kache explain` и следить за работой кэша в реальном времени с помощью `kache monitor`.

Сценарии использования

  • Ускорение повторных сборок Rust в нескольких git worktree одного репозитория.
  • Совместное использование скомпилированных артефактов между запусками CI с помощью удалённого кэша.
  • Сокращение использования диска, когда множество worktree собирают одно и то же большое дерево зависимостей.
  • Кэширование компиляций C/C++ или CUDA в проектах, которые собираются с помощью Make или CMake.

Быстрый старт

  1. 1

    Установите Kache v2.0.0 с помощью Cargo

    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 — это кэш компилятора: он сохраняет результаты сборки, привязанные к исходным данным, toolchain и настройкам сборки, а затем восстанавливает их, если при следующей сборке получается тот же ключ. Поддерживаются Rust, C/C++ и компиляция CUDA из одного исходного файла на Linux, macOS и Windows; результаты можно использовать совместно между git worktree и запусками CI.
kache можно использовать бесплатно? Какая у него лицензия?
kache распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
kache всё ещё поддерживается?
Активно поддерживается. Последний коммит в kache — 6 нояб. 2026 г..
Для чего можно использовать kache?
Ускорение повторных сборок Rust в нескольких git worktree одного репозитория. Совместное использование скомпилированных артефактов между запусками CI с помощью удалённого кэша. Сокращение использования диска, когда множество worktree собирают одно и то же большое дерево зависимостей. Кэширование компиляций C/C++ или CUDA в проектах, которые собираются с помощью Make или CMake.
Как установить kache?
Установите Kache v2.0.0 с помощью Cargo: cargo install kache --locked --version 2.0.0 Включите Kache для инструментов сборки (изменения будут показаны до применения): kache init Проверьте настройку с помощью локального зондирования: kache doctor --probe
Где скачать kache?
Исходный код и инструкции по установке — на GitHub: https://github.com/kunobi-ninja/kache

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты