← Все статьи
2026-07-09 08:04 · 🤖 AI World

Bun переписали на Rust за 11 дней: агенты, $165K и миллион строк кода

Jarred Sumner переписал Bun с Zig на Rust за 11 дней при помощи AI-агентов на ранней версии Claude Fable — и это уже несколько недель работает в production. PR с добавкой более миллиона строк кода прошёл живую conformance suite и лёг в основу Claude Code v2.1.181.

Bun переписали на Rust за 11 дней: агенты, $165K и миллион строк кода

Jarred Sumner, создатель Bun — быстрого JavaScript runtime на Zig — переписал весь проект на Rust за 11 дней при помощи AI-агентов. Основа процесса: conformance suite из TypeScript-тестов и adversarial code review. Итог — PR с добавкой более миллиона строк кода, суммарной стоимостью около $165 000 по API-ценам. С 17 июня 2026 года Claude Code v2.1.181 работает на Rust-версии Bun. На Linux старт стал быстрее на 10%. Всё остальное пользователи не заметили — авторы называют это победой.

Контекст

Bun с самого начала ставил на производительность: Zig давал низкоуровневый контроль, который позволил выжать из runtime максимум. Но у Zig есть фундаментальная проблема при смешивании ручного управления памятью и сборщика мусора — use-after-free, double-free, забытые free в error-path. Это не баги Zig как такового: другие проекты на нём работают стабильно. Просто такая комбинация редкость, и язык не проектировался под неё. Rust закрывает эту дыру компилятором: ownership-система и RAII через Drop гарантируют правильное освобождение памяти на этапе сборки, а не в production.

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

Аналитика

Ключ к успеху — не сами AI-агенты, а архитектура процесса. TypeScript-тесты Bun, написанные независимо от реализации, стали conformance suite: миллион утверждений о том, как система должна себя вести, а не о том, как написан код. Агентный харнесс гонял их автоматически после каждой итерации порта. Высокий процент прохождения тестов стал измеримым сигналом «можно мёрджить» — не субъективная оценка кода, а объективная метрика.

«Как проверить PR с добавкой больше миллиона строк? Как набрать уверенность, чтобы ответственно мёрджить большие объёмы LLM-authored кода? Языконезависимая тест-сьюта с миллионом утверждений, adversarial code review — а когда что-то идёт не так, чинить процесс генерации кода, а не править код вручную.» — Jarred Sumner

При обнаружении ошибки исправлялся процесс генерации, а не отдельный фрагмент кода. Это масштабируемо: починить шаблон один раз — значит починить тысячи мест сразу. Суммарные расходы: 5,9 млрд uncached input токенов, 690 млн output, 72 млрд cached reads — около $165 000 по API-ценам. Для сотрудника Anthropic это бесплатно. Для внешнего разработчика — реальные деньги, но уже реальная возможность.

Это кейс, который сдвигает границу между «слишком сложно автоматизировать» и «можно поручить агентам». Масштабные рефакторинги — смена языка, архитектуры, runtime — перестают быть многолетними проектами с туманным исходом. Условие одно: тесты, описывающие поведение, а не реализацию.

Кейсы применения в бизнесе

B2B-SaaS стартап с legacy-кодом. Если у вас Python 2, старый JS без типов или монолит на устаревшем фреймворке — начните с написания поведенческих integration-тестов: что система делает, а не как реализовано. Затем запустите агента на порт одного модуля. Не весь проект — один модуль. Если тесты зелёные, мёрджите. Эффект: рефакторинг за недели вместо кварталов, предсказуемый риск.

Корпорация с критичным C++ или Java. Тест-сьюта как «эталон поведения» позволяет отделить вопрос «правильно ли работает» от «как написан код». Агент конвертирует, инженер мониторит вывод и правит инструкцию агента при ошибках. CI падает на любое регрессионное поведение — не на изменение стиля. Это управляемо.

SMB в Кыргызстане и СНГ. Устаревший код на PHP, 1С или самописных фреймворках, который дорого поддерживать. Паттерн «сначала тесты, потом агентный рефакторинг» масштабируется даже на небольшие объёмы. Порог входа снизился: не нужна команда из пяти архитекторов — нужны тесты и Claude Code.

Кейсы в личной жизни

Разработчик с pet-проектом или техдолгом. Напиши 30–50 тестов на критичные сценарии, потом попроси Claude Code сделать порт или рефакторинг. Проверяй тесты — не каждую строку кода. Если тесты зелёные — значит, поведение сохранено. Экономия: не нужно разбираться в каждой строке сгенерированного кода.

Фрилансер на аутсорсе. Conformance suite — это артефакт для заказчика: «мы гарантируем поведение, а не реализацию». Переписать быстрее с агентом — сдать раньше и взять следующий контракт. Или продать тесты как отдельный deliverable: «вот спецификация поведения вашей системы в виде тестов».

Студент или джун, изучающий новый язык. Попроси Claude Fable транспилировать знакомый код (JavaScript → Rust, Python → Go) и разбери разницу. Это объяснит ownership или систему типов плотнее, чем большинство учебников: видишь конкретный перевод своего кода, а не абстрактные примеры.

Как применить сегодня

  • Выбери один модуль — не весь проект — и напиши 20–50 поведенческих тестов: что система должна делать, без привязки к реализации.
  • Запусти Claude Code с задачей «портируй этот модуль на [язык], все тесты должны проходить» — посмотри, сколько пройдёт с первой попытки.
  • Настрой adversarial review: отдельный prompt в изолированном контексте попросить найти ошибки в сгенерированном коде.
  • При обнаружении паттерна ошибок — правь инструкцию агента (процесс), а не код вручную: одно исправление закрывает тысячи мест.
  • Мониторь вывод, а не пиши код сам: основной рабочий режим при агентном рефакторинге — читать результаты и корректировать процесс.
← Все статьи