У Cargo новая структура каталога сборки — она два года была экспериментом

06.07.2026

Новая структура каталога сборки Cargo, которая долго была доступна только по флагу, перестала быть экспериментом. Она упрощает генерацию путей и уменьшает число аргументов, передаваемых компилятору.

Что не так со старой структурой

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

Первая — невозможность иметь несколько сборок с разными настройками в одном месте: они делили каталоги и сталкивались. Вторая — число аргументов с путями поиска, которое Cargo передавал компилятору, росло вместе с проектом и само по себе тормозило сборку.

Что даёт новая

Артефакты разнесены по отдельным деревьям с разделением по профилям и целям. Из-за этого число передаваемых путей поиска упало, а сборка стала заметно быстрее на проектах, где оно было узким местом.

Выходные файлы изменили расположение. Для кого это важно, нужно понимать: всё, что читает содержимое каталога сборки — правила замены путей в собранном коде, инструменты анализа, скрипты, читающие артефакты, — увидит другую структуру.

Как проверялось

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

В том же месяце новая раскладка включена по умолчанию в ночных сборках — то есть в режиме, где поведение ещё можно менять, пока разработчики к ней привыкают.

Оригинал

stabilize build-dir layout v2; включение по умолчанию на ночных сборках — rust-lang/cargo#17258; призыв к тестированию — 13.03.2026

Упоминаний: 1 · Просмотров: 3