Домой Статьи и аналитика Технологии Утверждён перевод JavaScript-платформы Bun на язык Rust

Утверждён перевод JavaScript-платформы Bun на язык Rust

Автор проекта отказался от языка Zig в пользу безопасности памяти и стабильности разработки.

Джарред Самнер, создатель и ведущий разработчик серверной JavaScript-платформы Bun, официально объявил о переводе проекта с языка Zig на Rust. Решение было принято после успешного эксперимента, в ходе которого исходный код был частично переписан с помощью AI-ассистента Claude Code. Обновленная кодовая база на языке Rust уже интегрирована в основной репозиторий, а старый код на Zig готовится к полному удалению.

Параллельно с этим изменением автор Bun сообщил о расширении команды и поиске специалистов с опытом разработки на C, C++ и Rust более пяти лет для долгосрочной поддержки платформы.

Детали миграции на Rust

Текущая реализация на Rust представляет собой прямой перенос логики с Zig. Разработчики сохранили прежнюю архитектуру, структуры данных и используемые внешние библиотеки, однако внедрили множество блоков unsafe кода для обеспечения совместимости. Обновленный проект уже прошел проверку существующим набором тестов на всех поддерживаемых платформах. В процессе миграции команда также обнаружила и устранила ряд критических утечек памяти и нестабильностей, которые ранее проявлялись в тестовой среде.

Первые результаты перехода показали положительную динамику:

  • Размер исполняемого файла уменьшился на 3–8 МБ по сравнению со сборкой на Zig.
  • Производительность осталась на прежнем высоком уровне или даже улучшилась.
  • Главное преимущество — возможность Rust отлавливать и предотвращать ошибки при управлении памятью на этапе компиляции, что радикально сокращает время на диагностику сложных багов, съедавших ресурсы команды последние годы.

Почему выбрали Rust?

Ранее Джарред Самнер уже озвучивал ключевые причины отказа от дальнейшего использования Zig. Помимо борьбы с утечками памяти, серьезным фактором стали разногласия с авторами языка Zig по вопросам использования AI в написании кода. Также разработчиков Bun не устраивает политика Zig в отношении стабильности API — частые изменения, нарушающие обратную совместимость, оказались неприемлемы для развития столь масштабного проекта.

Что такое Bun

JavaScript-платформа Bun позиционируется как высокопроизводительная альтернатива Node.js и Deno. Она обеспечивает широкую совместимость с серверными приложениями Node.js, поддерживая большинство его API. Платформа включает в себя:

  • Runtime для выполнения JS/TS кода вне браузера.
  • Пакетный менеджер, полностью совместимый с NPM.
  • Инструментарий для тестирования и сборки самодостаточных пакетов.
  • Прослойку для интеграции обработчиков, написанных на языке Си.

В основе Bun лежит движок JavaScriptCore и компоненты проекта WebKit с авторскими патчами. В тестах производительности, например, при рендеринге React-приложений, Bun демонстрирует значительное преимущество, обгоняя Deno в два раза, а Node.js — почти в пять раз.

Источник: http://www.opennet.ru