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 обязательно


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

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

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

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

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

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

     

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

  • 1.10, Джон Титор (ok), 20:34, 14/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     
  • 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 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.34, laindono (ok), 21:54, 14/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    unsafe это инструмент интеграции низкоуровневых (и просто внешних) штук. Это не имеет ничего общего ни с безопасностью, ни с производительностью. Никакие проверки компилятора не отключаются внутри unsafe блоков. Никакие специфические оптимизации не применяются над unsafe блоками.

    unsafe позволяет:
    - разыменовывать сырые указатели
    - взаимодействовать с другими штуками, помеченные unsafe
    - получать доступ к мутабельным глобальным переменным

    И это примерно всё. От программиста требуется вручную следить за корректностью этих частей. Это в свою очередь означает, что повышенного внимания требуют только очень небольшие куски кода. В этом вся суть данного инструмента.

     
     
  • 3.38, Аноним (38), 22:09, 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 +/
    Голоса в голове заставляют его постоянно переписывать с одного на другое.
     
     
  • 2.40, Аноним (38), 22:14, 14/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Легковнушаемый просто. Взяться писать с нуля на низкоуровневом и использовать готовые инструменты майков под другие языки. Выявить эту проблему, обвинить язык на котором пишет, и уйти где эта проблема решается компилятором, а пишет ИИ.
     

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

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

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

    ну а про память его вообще слушать нех - https://github.com/oven-sh/mimalloc - форкнул, наложил патчей и пользуется? как-то странно его нытьё о мучениях и дата форка совпадают - пару лет

    разрабы зиги/тайгербиттл совсем другое о памяти говорят, как её пользоваться, если что

     

  • 1.25, Витюшка (?), 21:06, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В общем для Zig это плохой знак. Хороший язык, но непригодный для чего-то серьёзного. А жаль.
     
     
  • 2.41, Аноним (38), 22:16, 14/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Кент Оверстрит у тебя тоже в фаворитах? Линукс фигня, да?
     

  • 1.26, sqrt (?), 21:14, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Указанный в новости PR закрыт и переименован в "ai slop" самим Джаредом:

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

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

     
     
  • 2.32, heraldofschiza (ok), 21:39, 14/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если ты не разбираешься в интерфейсе гитхаба, просто промолчи, умоляю. Сойдёшь за умного
     
  • 2.33, rust_fan (?), 21:40, 14/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    вмрежено в main https://github.com/oven-sh/bun/pull/30412
    открой сурсы в main и протри глазки.

    ai slop помечен мр на выпил zig как преждевременный.

     

  • 1.28, warlock (??), 21:21, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Код уже посмотрели. Там тихий ужас, полный пэ.
     
  • 1.29, Аноним (29), 21:27, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > желание устранить проблемы в Bun, вызванные утечками памяти

    дак ведь раст не защищает от этого

     
  • 1.30, Аноним (30), 21:30, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Разработчиков на с++ наняли на перспективу я так понимаю когда разочаруются в расте?
     
  • 1.37, Сладкая булочка (?), 22:05, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    — Вот ты говорил, город — сила, а тут слабые все...
    — Город — это злая сила... Сильные приезжают, становятся слабыми, город забирает силу... Вот и ты пропал! (с)
     
  • 1.39, Сладкая булочка (?), 22:11, 14/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Джарред Самнер до перевода на rust

    https://www.opennet.ru/opennews/art.shtml?num=65379

    > Автор Bun не согласен с запретом AI в Zig и полагает, что AI-слоп останется ностальгическим пережитком 2025 и 2026 годов, а разработка открытого ПО эволюционирует до запрета приёма кода от людей. Люди будут обсуждать проблемы, ставить задачи и расставлять приоритеты, а написание кода и отправка изменений в репозитории станет уделом AI.

    Джарред Самнер после перевода на rust

    > Также автор Bun объявил о найме сотрудников для поддержки Bun, имеющих более 5 лет опыта разработки на языках C/C++ и Rust.

     

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



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

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