cargo clean: как очистить кэш Cargo на Mac
Чтобы очистить кэш Cargo на Mac командой cargo clean или вручную, полезно знать, что Rust хранит две разные вещи. В папке target каждого проекта лежит всё, что Cargo для него собрал, — часто гигабайты на проект, а скачанные крейты лежат отдельно, в кэше, общем для всех проектов. Здесь — как очистить и то и другое, начиная со старых проектов, и что Cargo удаляет сам.

- Откройте MacWashing и выберите Сборка мусора в боковом меню.
- Нажмите Начать сканирование.
- Просмотрите находки и нажмите Очистить. Всё спорное остаётся без галочки.
Бесплатная пробная версия · macOS 14 и новее
Что удаляет cargo clean
Каждый проект Cargo собирается в свою папку target рядом с Cargo.toml: скомпилированные зависимости, отладочные и релизные сборки, документация, данные инкрементальной сборки. Всё это Cargo заново соберёт из вашего кода и скачанных крейтов, так что удаление стоит только времени на сборку.
Эта команда показывает, что и сколько будет удалено, ничего не удаляя. Выполните её в папке проекта:
cargo clean --dry-runКак выполнить cargo clean
Эта команда удаляет всю папку target проекта, в котором вы находитесь. Код, Cargo.toml, Cargo.lock и кэш Cargo остаются. Следующий cargo build скомпилирует всё заново, а на большом проекте это минуты:
cargo cleanЧтобы удалить меньше, cargo clean --release убирает только релизную сборку, а cargo clean --doc — только документацию, созданную cargo doc. В рабочем пространстве (workspace) одна команда чистит все его проекты.
Удалить папки target старых проектов
Проект хранит папку target годами после последней сборки. Проекты, с которыми вы больше не работаете, — самое простое место, которое можно освободить: выполните в каждом cargo clean или переместите его папку target в Корзину. Код останется, а следующая сборка создаст папку снова.
Как очистить кэш Cargo
Скачанные крейты Cargo хранит в ~/.cargo, общей для всех проектов:
~/.cargo/registry/index— сведения о крейтах: их версии и зависимости.~/.cargo/registry/cache— скачанные крейты в виде архивов.crate.~/.cargo/registry/src— те же крейты, распакованные для компилятора.~/.cargo/git/dbи~/.cargo/git/checkouts— зависимости, взятые из Git-репозиториев.
Стабильной команды, которая очищает всё это, у Cargo нет. В документации Cargo сказано, что любую часть кэша можно удалить: нужное для сборки Cargo снова распакует или скачает. Чтобы очистить кэш вручную:
- Закройте редактор кода и дождитесь окончания сборок.
- В Finder выберите Переход › Переход к папке (Shift-Command-G), введите
~/.cargo/registryи нажмите Return.

- Переместите папки
cacheиsrcв Корзину. Чтобы очистить и зависимости из Git, так же откройте~/.cargo/gitи переместите в Корзинуcheckoutsиdb.

- Очистите Корзину.
Не удаляйте ~/.cargo/bin: там лежат cargo, rustc и инструменты, установленные через cargo install. Оставьте и ~/.cargo/config.toml: это настройки Cargo, а не кэш.
Чистит ли Cargo кэш сам
Отчасти, начиная с Rust 1.88. Во время сборок Cargo удаляет из ~/.cargo файлы, которыми давно не пользовался: скачанные — через 3 месяца, те, что можно создать заново без интернета, — через месяц. Старые папки target сами не чистятся: они остаются, пока вы не выполните cargo clean или не удалите их.
cargo-cache — сторонний инструмент, который упоминает документация Cargo: он показывает размер каждой части кэша и очищает выбранные. Встроенная команда cargo clean gc пока есть только в nightly-версии Rust.
А с MacWashing это в один клик

Сборка мусора в MacWashing показывает кэш Cargo в разделе «Кэш программ». В «Зависимостях проектов» она находит папки target проектов на Rust, которые вы не меняли 90 дней, — без галочки: собирать их заново долго, поэтому решаете вы. Кэш других программ очищается за тот же проход.
Бесплатная пробная версия · macOS 14 и новее
Вопросы и ответы
Удалит ли MacWashing мои файлы при очистке?
Нет. Он удаляет только то, что может сопоставить с известной программой или известным видом мусора, и только там, где программы оставляют файлы; macOS и файлы Apple не затрагиваются. Всё спорное помечено и остаётся без галочки, пока вы не решите.
Что будет с открытыми программами?
Если файлы заняты открытой программой, MacWashing подождёт, пока она закроется, или закроет её по вашей команде, а после очистки откроет снова.
Это бесплатно?
Да, в пробном режиме: Сборка мусора и Деинсталлятор вместе освобождают до 25 ГБ, без аккаунта и карты.
Безопасно ли выполнять cargo clean?
Да. Она удаляет только то, что собрал Cargo, — папку target. Код, Cargo.lock и скачанные крейты остаются. Следующая сборка займёт столько же, сколько первая.
Сломаются ли проекты, если очистить кэш Cargo?
Нет. Нужные для сборки крейты Cargo скачает или распакует заново. Без интернета проект, чьи крейты удалены, не соберётся, пока вы снова не подключитесь к сети.
Почему папка target такая большая?
Cargo хранит отдельные отладочные и релизные сборки для каждой платформы и версии компилятора, которыми вы пользовались, плюс данные инкрементальной сборки. Каждая зависимость компилируется в target своего проекта, поэтому десять проектов с одними и теми же крейтами хранят десять копий.