TGViewer
AI Coder AI Coder @ai_coder_news · 539 subscribers
Post #556 453
Bun переписали с Zig на Rust за 11 дней. Миллион строк кода написал Claude

Вышел анонс Bun 1.4.0. И это не столько очередной релиз JavaScript-рантайма, сколько, возможно, самый масштабный публичный кейс agentic coding на сегодняшний день.

Bun 1.3.14 стал последней версией на Zig. Bun 1.4.0 — первая версия, основная кодовая база которой переписана на Rust. На момент публикации новая версия пока доступна через canary:

bun upgrade --canary

Причина переезда — не скорость. С ней у Bun и так все было хорошо.

Проблемой была стабильность на границе между JavaScriptCore с его garbage collector и вручную управляемой памятью Zig: use-after-free, double-free, утечки в редких error path и другие ошибки жизненного цикла объектов.

Можно было продолжать ловить их ASAN, фаззингом и code review. Но в Rust значительная часть таких проблем превращается в ошибку компиляции, а Drop гарантированно освобождает ресурсы при выходе объекта из scope.

Но самое интересное здесь — как именно переписывали Bun.

Это не был промпт «Claude, перепиши мне Bun на Rust».

Сначала Джарред Самнер вместе с Claude подготовил PORTING.md: формальные правила преобразования паттернов Zig в Rust. Затем отдельный workflow проанализировал lifetimes всех полей структур и собрал их в LIFETIMES.tsv.

После этого запустили около 50 динамических workflows в Claude Code:

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

На пике одновременно работали 64 Claude в четырех worktree. За 11 дней они обработали 1 448 Zig-файлов, сделали 6 502 коммита, а итоговый diff составил больше миллиона добавленных строк. В пике агенты генерировали около 1 300 строк кода в минуту.

Стоимость до merge:

— 5,9 млрд uncached input tokens;
— 690 млн output tokens;
— 72 млрд cached token reads;
— примерно $165 000 по API-прайсу.

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

При этом тесты не удаляли и не скипали. На разных платформах прогонялось больше миллиона expect() и около 60 тысяч тестов.

Что получилось в Bun 1.4:

— исправлено 128 воспроизводимых багов из Bun 1.3.14;
— устранены все утечки памяти, которые удалось инструментировать;
— повторный Bun.build() больше не раздувает процесс до гигабайт: после 2 000 сборок потребление памяти стабилизируется примерно на 609 МБ вместо 6,7 ГБ;
— бинарник стал примерно на 20% меньше на Linux и Windows;
— большинство нагрузок ускорилось еще на 2–5%;
— запуск Claude Code на Linux стал быстрее примерно на 10%.

Конечно, это пока не полностью идиоматичный safe Rust. Около 4% Rust-кода находится внутри unsafe, потому что Bun продолжает работать с JavaScriptCore и большим количеством C/C++-библиотек. Но теперь потенциально опасные места хотя бы явно размечены и постепенно могут рефакториться.

И вот здесь, мне кажется, самое важное.

Это уже не история про то, что «ИИ научился писать код». Код он научился писать давно.

Это история про то, что правильно построенный harness позволяет сделать миграцию кодовой базы, которую команда раньше даже не стала бы начинать:

— формализовать правила;
— разложить работу на независимые циклы;
— отделить implementer от reviewer;
— запустить adversarial review;
— зафиксировать поведение огромной тестовой системой;
— исправлять не отдельные ошибки агентов, а сам workflow, который эти ошибки порождает.

Ну вы поняли, да?

Разработчик будущего не переписывает миллион строк руками. Он проектирует систему, которая может безопасно переписать миллион строк и доказать, что результат работает.

https://bun.com/blog/bun-in-rust
Bun Rewriting Bun in Rust Why & how we rewrote Bun from Zig to Rust
  • 👍 4
  • 🔥 2
More from @ai_coder_news
  1. Sep 18, 2026⚡ Собрал смарт-роутинг для Claude Code: тяжёлые задачи — на GLM-4.5+, рутина — на флеш Под…
  2. Sep 16, 2026Я перестал давать Astra писать код. И дело не в том, что она плохо это делает 🙂 Довёл до…
  3. Sep 14, 2026Как я использую OKF в своих проектах? Я запускаю этот промпт и дальше агент читает правила…
  4. Sep 14, 2026🧠 Google OKF vs OpenViking: какую память делать своим агентам? Начал разбираться с Open K…
  5. Sep 9, 2026Оказывается, hidden reasoning у frontier-моделей можно было буквально украсть за два API-в…
  6. Sep 7, 2026Spotify показал, как сократить расход Claude Code примерно на 90% — и идея тут на самом де…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →