# Кэш {#cache}

Артефакты сборки не разделяются между окружениями, из-за чего приходится многократно пересобирать один и тот же код. Функция кэширования Tuist позволяет удалённо обмениваться артефактами, чтобы ваша команда и CI получали более быстрые сборки без повторной компиляции уже собранного.

Изучите рабочий процесс кэширования, который подходит для вашего проекта или модели развёртывания:

<.home_cards>
  <.home_card
    title="Кэш модулей"
    details="Кэшируйте отдельные модули в виде бинарных файлов для проектов, использующих генерацию проектов Tuist. Требуется генерация проекта через Tuist."
    link="/guides/features/cache/module-cache"
/>
  <.home_card
    title="Кэш Xcode"
    details="Делитесь артефактами компиляции Xcode между окружениями. Работает с любым проектом Xcode, генерация проекта не требуется."
    link="/guides/features/cache/xcode-cache"
/>
  <.home_card
    title="Кэш Gradle"
    details="Удалённо делитесь артефактами кэша сборок Gradle. Включает аналитику сборок для оценки производительности."
    link="/guides/features/cache/gradle-cache"
/>
  <.home_card
    title="Кэш Bazel"
    details="Направьте Bazel на кэш Remote Execution API от Tuist, чтобы делиться результатами действий между вашей командой и CI."
    link="/guides/features/cache/bazel-cache"
/>
  <.home_card
    title="Кэш Elixir"
    details="Включите кэширование для поддерживаемых зависимостей Elixir и продолжайте использовать Mix. Просматривайте попадания в кэш и передачи данных в панели управления."
    link="/guides/features/cache/elixir"
/>
  <.home_card
    title="Кэш Rust (экспериментальный)"
    details="Повторно используйте выходные данные поддерживаемых библиотек реестра локально и через Kura. Узнайте, как включить кэширование и отслеживать активность кэша."
    supported_for="rust"
    link="/guides/features/cache/rust"
/>
  <.home_card
    title="Самостоятельное размещение"
    details="Запускайте узлы кэша рядом с CI, офисами или региональными вычислительными ресурсами и подключайте их к размещённому или самостоятельно размещённому Tuist."
    link="/guides/features/cache/self-hosting"
/>
</.home_cards>

> [!TIP]
> **Максимальная скорость на Tuist Runners**
>
> На <.localized_link href="/guides/features/runners">Tuist Runners</.localized_link> кэш расположен в частной сети раннера и использует тот же кэш, что и машины разработчиков, поэтому задачи CI сразу получают тёплые попадания без необходимости отдельного прогрева кэша для CI.


## Ограничить загрузку только для CI {#restrict-uploads-to-ci}

Администраторы аккаунта могут предоставить разработчикам доступ только для чтения, разрешив CI загружать артефакты кэша. Откройте настройки **Кэша** аккаунта в Tuist и установите параметр **Доступ к загрузке в кэш** в значение **Только CI и токены аккаунта**. После этого участники, авторизованные через сеансы входа, по-прежнему смогут скачивать данные из кэша, но для загрузки потребуется аутентификация CI через OIDC или токен аккаунта с правами на запись в кэш, например `project:cache:write` или `ci`.

Используйте эту настройку, когда CI является доверенным источником кэша, а локальные машины должны только потреблять кэш. Параметр влияет только на авторизацию загрузки в кэш.
