Bun переписывает 960K строк с Zig на Rust за 6 дней — всю работу сделал ИИ
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.
Миграция с ИИ в промышленном масштабе
Это одна из первых крупных демонстраций ИИ-миграции кодовой базы. Подход:
- Анализ исходников — Claude проанализировал паттерны Zig, идиомы управления памятью и публичный API
- Инкрементальный перевод — каждый Zig-файл переводился на Rust с сохранением поведения через property-based тесты
- Параллельное исполнение — несколько экземпляров Claude работали параллельно
- CI-валидация — каждый переведенный модуль проверялся существующим тест-сьютом
Споры
Мерж вызвал бурные дебаты в сообществе.
Сообщество 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 за нас?”»