Bun на Rust собрали агентами Claude, GitHub пошёл иначе

«Проект, который до агентов занял бы целую команду разработчиков на год или два, сделал в основном один человек за несколько месяцев», пишет инженер Microsoft Стивен Тоуб о переносе рантайма агента GitHub Copilot на Rust, о чём рассказывает Thenewstack. Вместо TypeScript поверх Node.js и V8 получилось больше 800 000 строк боевого Rust, и большую часть кода, по словам Тоуба, написали сами агенты Copilot.
Коротко
- GitHub вёл миграцию не одним куском, а частями: рантайм переписывали и выкатывали по мере готовности, всего 128 пул-реквестов примерно за 14,5 недели, продукт при этом продолжали развивать.
- Bun пошёл другим маршрутом: Джарред Самнер запустил параллельно несколько агентов Claude Code, и через одиннадцать дней порт 535 496 строк Zig на Rust проходил тесты на всех шести поддерживаемых платформах.
- Сравнивать одиннадцать дней с 14,5 неделями бессмысленно: задачи разные, а обе компании продают ровно те агенты, которым приписывают успех своих переписываний.
Если вы не следили за Bun: он начинался в 2021 году как проект одного человека, написанный в тесной оклендской квартире ещё до всяких LLM. Первую строку на Zig Самнер написал 16 апреля 2021 года, рассказывали в блоге Bun. К моменту переписывания CLI Bun скачивали больше 22 миллионов раз в месяц, и вместе с ростом пришёл устойчивый набор багов с памятью, от утечек до падений. Самнер писал, что чинить их по одному можно вечно, но пользователи вправе рассчитывать на системное решение.
GitHub вёл миграцию частями: 128 пул-реквестов за 14,5 недели
Рантайм агента Copilot раньше жил на TypeScript поверх Node.js и V8, а стал больше чем 800 000 строк боевого Rust. Писали его самими же продуктами GitHub: приложением Copilot и Copilot CLI. Работу разбили на 128 пул-реквестов, которые сливали и выкатывали по мере готовности, и Тоуб отмечает, что так регрессии находили и чинили по ходу.
Зачем такому продукту Rust, в GitHub объясняют устройством. По данным блога GitHub, на одном рантайме держатся VS Code, Visual Studio, CCA, Copilot Code Review, Copilot Cowork, Copilot Studio, а также Excel, Outlook, PowerPoint и Word, и каждый продукт по сути оболочка вокруг него. Для консольной утилиты связка TypeScript и Node была вполне разумной, а для встраивания в чужие среды, где важны быстрый старт и низкий расход памяти, уже куда меньше.
Тоуб пишет, что переписывание такого размера до агентов было бы просто не по карману: раньше на него ушла бы команда целиком на год или два.
Bun: 535 496 строк Zig и одиннадцать дней до зелёных тестов
Bun, JavaScript-рантайм, который Anthropic купила в декабре, объявил о переезде с Zig на Rust в июле. Обычный путь Самнер оценивал так: небольшая инженерная команда примерно на год, и всё это время пришлось бы заморозить багфиксы, правки безопасности и новые функции. По его словам, такая цена делала проект нереалистичным. Сам Zig он при этом не винил и указывал на сложность управления памятью на стыке Zig и встроенного движка JavaScript.
Вместо этого он пустил несколько агентов Claude Code параллельно на разные части кодовой базы, сам следил за ними и вмешивался, когда процесс уходил не туда. По данным Dennis Morello, суммарно вышло около 50 воркфлоу Claude Code, запускавшихся по несколько штук за раз; в блоге Bun уточняют, что бралась предрелизная версия Claude. Через одиннадцать дней Rust-версия проходила существующие тесты на всех шести платформах, код влили в основную ветку, а ревью и чистка продолжались до релиза.
Почему порт шёл файл за файлом
По данным Dennis Morello, переписывание Bun было механическим портом: один .zig-файл за раз, поведение держали максимально близким к версии 1.3.14, а Rust-код намеренно повторял оригинал вплоть до тех же имён функций, той же вложенности и тех же комментариев. Приводить код к идиоматичному Rust собирались отдельным заходом, уже после переноса.
Работает это как подстрочный перевод книги: сначала важна точность строка в строку, красота потом. Проверяющим выступал существующий набор тестов, который, как отмечает Morello, никогда не был привязан к языку реализации: тесты написаны на TypeScript и одинаково гоняются по обеим версиям. Там же приводят цифры до и после: цикл сборки внутри процесса, раздувавшийся до 6,7 ГБ в 1.3.14, в 1.4 держится на 609 МБ, а сама 1.4 закрывает 128 багов.
Спор о результатах тоже идёт. По данным Dennis Morello, Самнер и автор Zig Эндрю Келли публично расходятся в том, откуда взялись 2–5% скорости и примерно на 20% меньший бинарник; часть выигрыша относят к кросс-языковому LTO, обрезке ICU и работе с линкером, которые можно было сделать и в Zig.
Habitat на Rust держит 95% продакшн-запросов OpenAI
OpenAI раскрыла ещё одно переписывание с участием агентов: два инженера с Codex и GPT-5.5 перевели Habitat, хранилище под ChatGPT и другими продуктами, с Python на Rust во втором квартале 2026 года. Новый сервис обрабатывает 95% продакшн-запросов компании, тратит в шесть раз меньше CPU и в 15 раз меньше памяти, чем Python-предшественник.
Похожий заход был и у Meta. В марте инженер Джо Савона вёл порт React Compiler с TypeScript на Rust и отмечал, что код «в основном написан ИИ», но архитектура, тестирование и стратегия миграции оставались за человеком. Это часть более широкой работы Meta по замене десятилетиями лежавшего легаси на Rust в ключевой библиотеке для сообщений.
Все эти истории рассказывают те, кто продаёт агенты: Anthropic владеет Bun, GitHub и Microsoft выпускают Copilot, OpenAI делает Codex, и каждый отчёт остаётся отдельным кейсом от самой заинтересованной стороны. Ни в одном из них не сказано, сколько человеческого времени ушло на ревью и чистку после агентов. На наш взгляд, инкрементальный маршрут с 128 пул-реквестами проверяемее разового порта: регрессии всплывают порциями, а не всей кодовой базой сразу.
Когда выключат Python-версию Habitat
OpenAI собирается полностью вывести Python-версию Habitat из эксплуатации в ближайшие недели и обещает подробности позже; точных дат компания не называет. У Bun, по данным Dennis Morello, следующий шаг иной: переход от подстрочного порта к идиоматичному Rust, отложенный до конца переноса, и сроков по нему тоже нет. Открытый вопрос по всем трём кейсам один: появятся ли цифры не от вендоров. Пока таких публикаций в материалах нет.
Читайте также
- Патчи в CI у Anthropic жили 70 дней, 29 дней и меньше суток
- Claude разбирал ошибки 500 и вышел на злоупотребление
- Переписывание Claude в Swift идёт больше двух недель
- Claude Tag сводит 65% продуктовых PR команды Claude Code
- Anthropic описала процесс миграции кода на Claude Code
- Claude восстановил 41 ТБ данных BTRFS
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите через Google, чтобы оставить комментарий. Имя и аватар подставятся из вашего профиля Google, а комментарий появится после модерации.
