The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

14.05.2026 20:01 (MSK)

Джарред Самнер (Jarred Sumner), создатель и основной разработчик серверной JavaScript-платформы Bun, признал успешным эксперимент по переписыванию проекта с языка Zig и Rust при помощи AI-ассистента Claude Code, и принял решение о переводе Bun на язык Rust. Переписанный вариант на языке Rust уже принят в основной репозиторий проекта, а код на языке Zig намечен к удалению. Также автор Bun объявил о найме сотрудников для поддержки Bun, имеющих более 5 лет опыта разработки на языках C/C++ и Rust.

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

После сборки версии на Rust исполняемый файл получился на 3-8 МБ меньше, чем при сборке версии на Zig. В тестах производительности версия на Rust оказалась либо быстрее, либо на том же уровне. При этом по мнению Джарред самым важным преимуществом варианта на Rust стала возможность отлавливания и предотвращения ошибок при работе с памятью, диагностика которых последние годы отнимала у разработчиков Bun уйму времени.

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

JavaScript-платформа Bun развивается как высокопроизводительный аналог платформ Node.js и Deno. Проект разрабатывается с оглядкой на обеспечение совместимости с серверными приложениями для Node.js и поддерживает большую часть API Node.js. В состав платформы входит набор инструментов для создания и выполнения приложений на языках JavaScript и TypeScript, а также runtime для выполнения JavaScript-приложений без браузера, пакетный менеджер (совместимый с NPM), инструментарий для выполнения тестов, система сборки самодостаточных пакетов и прослойка для встраивания обработчиков, написанных на языке Си. По производительности Bun заметно обгоняет Deno и Node.js (в тестах на базе фреймворка React платформа Bun в 2 раза опережает Deno и почти в 5 раз Node.js). Для выполнения JavaScript задействован JavaScript-движок JavaScriptCore и компоненты проекта WebKit с дополнительными патчами.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Автор платформы Bun проводит эксперимент по переписыванию с Zig на Rust
  3. OpenNews: Опубликована платформа Node.js 26.0.0
  4. OpenNews: Доступна платформа Deno 2.0, развиваемая автором Node.js
  5. OpenNews: Доступна серверная JavaScript-платформа Bun 1.0, более быстрая, чем Deno и Node.js
  6. OpenNews: В JavaScript-платформе Bun добавлена поддержка вызова кода на языке Си
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65448-bun
Ключевые слова: bun, javascript, rust, node.js
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (27) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 20:15, 14/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +2 +/
     
  • 1.2, Colorado_House_of_Representatives (?), 20:18, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > По производительности Bun заметно обгоняет Deno и Node.js

    До конвертации в rust.

     
     
  • 2.8, Вася Пупкин (?), 20:33, 14/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >В тестах производительности версия на Rust оказалась либо быстрее, либо на том же уровне.
     

  • 1.3, Аноним (-), 20:19, 14/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +2 +/
     
  • 1.4, nagual (ok), 20:23, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не долго мучалась старушка
    В высоковольтных проводах,
    Её обугленная тушка
    На птичек нагоняет страх...
     

  • 1.5, Аноним (5), 20:26, 14/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.6, Аноним (6), 20:31, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > После сборки версии на Rust исполняемый файл получился на 3-8 МБ меньше, чем при сборке версии на Zig

    Вот это поворот! А местные воины против Раста пели о жирных бинарях...

     

  • 1.7, Аноним (-), 20:32, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    предлагаю выдать ему премию дарвина, если в компилятор зиги завезут отточенные механизмы управления памяти из раста раньше, чем он закончит
     
     
  • 2.11, q (ok), 20:38, 14/05/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Предлагаю выдавать премию дарвина всем, кто отказывается от стабильных отточенных механизмов управления паматью раста, в пользу еще не существующих механизмов в зиге. Мало того, что они не существуют, мало того, что их в плане нет и не было, мало того, что аффтары о них не заикались, мало того, что когда они появятся, они будут крайне сырыми, так ^комментатор еще и НАДЕЕТСЯ, что скоро все вот-вот изменится.
     
     
  • 3.14, Аноним (-), 20:42, 14/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.10, Джон Титор (ok), 20:34, 14/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.13, Аноним (13), 20:39, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >На данный момент на Rust реализован прямой порт с языка Zig, который включает множество блоков unsafe кода
    >В тестах производительности версия на Rust оказалась либо быстрее, либо на том же уровне.

    Когда ансейвы уберут, где гарантия что там перформанс не просядет? А если не убирать, то зачем раст, чисто из-за позиции zig против ии?

     
     
  • 2.17, Аноним (-), 20:44, 14/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    а какая там позиция у зига против него? они язык развивают, крупным шрифтом написали что обратной совместимости не будет, как с памятью работать норм объяснили, ды даже уже рабочие аналоги интерфейсов подогнали. просто чувак сам сдулся, а тут к нему крутыши подкатили - вот его и понесло
     
  • 2.19, Аноним (19), 20:50, 14/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так а что мешает отказаться только от части ансейвов, чтобы не ронять производительность? Всяко безопаснее, чем когда весь код ансейв
     
     
  • 3.20, Аноним (-), 20:53, 14/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.15, Аноним (15), 20:42, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На Расте тоже нужно 5 лет опыта? Откуда его взять то если работы нет? Или нужно 5 лет вазюкать пет проектики?
     
  • 1.16, Tron is Whistling (?), 20:42, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эпический набор ненужно.
     
  • 1.21, Аноним (-), 20:59, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    https://github.com/oven-sh/mimalloc

    ну серьёзно? вместо того что бы слушать девов зиги про память?

     
  • 1.22, Аноним (22), 20:59, 14/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.23, Аноним (23), 21:00, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Голоса в голове заставляют его постоянно переписывать с одного на другое.
     
  • 1.24, Аноним (24), 21:01, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как бы смешно это ни звучало, но переписывание на Rust имеет больший смысл чем думают некоторые комментаторы сайта. 1) Написать с нуля на rust бывает сложновато, поскольку в этом языке дорогой рефакторинг, а писать идиоматично требуют с data-first (что уже по себе не просто). 2) Прототипирование на rust тоже не самое выдающееся его качество если оценивать по главной требуемой характеристике - времени до первого рабочего прототипа с основными функциями. 3) Если у вас основа готова для фулл-ревью, то почему бы и не переписать, когда описанные в статье проблемы вас уже достали ?

    В любом случае статья ЧУТЬ лукавит - пишут что это прямой порт, а не переписывание, значит ускорение работы и уменьшение размера бинарника действительно заслуживают внимания! Но в тот же момент "Попутно было устранено несколько утечек памяти и сбоев в тестах." значит всё-таки не прямой порт, а переписывание без изменения архитектуры. И тогда сравнивать ускорение работы и уменьшение в размерах не совсем корректно. Надо посмотреть на флаги компиляции обоих проектов что бы сказать конкретней.
    Если, например, вырезали всю отладочную информацию и все паники поставили в abort, то это некорректное сравнение.

     
     
  • 2.27, анонимс (?), 21:19, 14/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Автор лукавит и пишем нуля так как это его проект - энтропики купили и отсыпали для пропаганды т.е. рекламы Клода (редкостная ерунда - пользуюсь несколько месяцев. Нагенерированному агентом вообще нельзя доверять. Как БЯМ ассистент норм хотя постоянно врёт. Включая сгенерированный им же код)
     

  • 1.25, Витюшка (?), 21:06, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В общем для Zig это плохой знак. Хороший язык, но непригодный для чего-то серьёзного. А жаль.
     
  • 1.26, sqrt (?), 21:14, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Указанный в новости PR закрыт и переименован в "ai slop" самим Джаредом:

    > This PR has been marked as AI slop and the description has been updated to avoid confusion or misleading reviewers.

    Что-то мне подсказывает, что перевод не утвержден (пока?)

     
  • 1.28, warlock (??), 21:21, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Код уже посмотрели. Там тихий ужас, полный пэ.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру