needhelp
← Back to blog

Bun переписывает 960K строк с Zig на Rust за 6 дней — всю работу сделал ИИ

by needhelp
bun
rust
zig
ai-codegen
javascript-runtime

Bun Zig to Rust rewrite

14 мая 2026 года создатель Bun Jarred Sumner смержил PR #30412 — ветку с 6755 коммитами, которая переписывает ядро Bun с Zig на Rust. Ветка claude/phase-a-p... была почти целиком сгенерирована агентами Anthropic Claude.

Цифры впечатляют:

Метрика Значение
Коммиты 6,755
Переведено кода ~960K строк Zig → Rust
Сроки 6 дней
Совместимость тестов 99.8% (Linux x64 glibc)
Исходная ветка claude/phase-a-p...

Что произошло

Bun изначально был написан на Zig — системном языке от Andrew Kelley. Zig дал Bun скорость, но ограничил пул контрибьюторов. У Rust огромная экосистема, зрелые инструменты и глубокая интеграция с LLVM.

После поглощения Bun компанией Anthropic команда экспериментировала с использованием Claude для перевода всей кодовой базы Zig в Rust. Эксперимент длился 6 дней на кластере высокопроизводительных нод и выдал 6755 коммитов.

Результат: кодовая база на Rust, проходящая 99.8% существующих тестов Bun на Linux x64 glibc.

Миграция с ИИ в промышленном масштабе

Это одна из первых крупных демонстраций ИИ-миграции кодовой базы. Подход:

  1. Анализ исходников — Claude проанализировал паттерны Zig, идиомы управления памятью и публичный API
  2. Инкрементальный перевод — каждый Zig-файл переводился на Rust с сохранением поведения через property-based тесты
  3. Параллельное исполнение — несколько экземпляров Claude работали параллельно
  4. CI-валидация — каждый переведенный модуль проверялся существующим тест-сьютом

AI migration pipeline

Споры

Мерж вызвал бурные дебаты в сообществе.

Сообщество Zig

Bun был флагманским проектом Zig — крупнейшим и самым заметным продакшен-развертыванием этого языка. Loris Cro из Zig Software Foundation ранее называл вклад LLM в Zig «в основном негативным». Миграцию восприняли как предательство языка, благодаря которому Bun стал возможен.

Критика «vibe porting»

На Lobste.rs разработчики придумали термин «vibe porting» — ИИ-перевод, который работает статистически, но без глубокого понимания. Критики утверждают, что сгенерированный AI Rust-код следует поверхностным паттернам и упускает идиоматичный Rust.

Осторожная позиция Jarred

В более ранних комментариях на HN Sumner подчеркивал: «Мы еще не решились на переписывание. Очень высока вероятность, что весь этот код будет полностью выброшен.» Но мерж в main говорит о том, что эксперимент превзошел ожидания — или стратегия изменилась.

Что это значит

Для пользователей Bun

В краткосрочной перспективе ничего не меняется — Rust-версия сохраняет API-совместимость. В долгосрочной: больший пул контрибьюторов, лучшая интеграция с экосистемой Rust (крейты вроде tokio, hyper, reqwest), потенциально более быстрая разработка.

Для Zig

Zig теряет свой флагманский проект. Но язык продолжает развиваться — а порт Bun может привлечь разработчиков, которые хотят работать с рантаймом на Rust.

Для ИИ-миграции кода

Это переломный момент. Если 960K строк системного рантайма можно перенести за 6 дней с помощью ИИ, экономика переписывания софта меняется фундаментально. Поддержка легаси, миграция с языка на язык — исторически дорогие и рискованные задачи — становятся решаемыми.

Реакции сообщества

Источник Настроение
Hacker News Разброс — впечатлены возможностями ИИ, скептичны к качеству кода
Lobste.rs Критично — обсуждение «vibe porting», опасения насчет идиоматичного Rust
Stork.ai analysis Стратегический анализ динамики Zig vs Rust
DevClass Нейтрально, отмечают что порт «полусырой»
CosmicJS Сообщают о 99.8% совместимости тестов

Что дальше

Переписывание Bun на Rust не завершено — 99.8% это не 100%, и ревьюверы отметили места, где ИИ-перевод оказался слабым. Но сам факт, что эксперимент дошел до main, открывает новую главу не только для Bun, но и для того, как мы думаем о переписывании софта.

Как сказал один комментатор на HN: «Раньше спрашивали “стоит ли переписывать на Rust?”. Теперь спрашивают “стоит ли позволить ИИ переписать это на Rust за нас?”»

References

Share this page