Bun 1.3.9 выпущен: параллельный запуск скриптов, поддержка байткода ESM и улучшения производительности JSC

JavaScriptИсполнениеИнструменты

Bun 1.3.9 (8 февраля 2026) — это целенаправленное, полезное обновление, которое приносит несколько функций, важных прямо сейчас для команд полного стека: полноценная оркестрация параллельных/последовательных скриптов, поддержка байткода ESM для скомпилированных сборок, более точный контроль CPU-профайлера и значительный прирост производительности JavaScriptCore (JSC), ускоряющий распространённые пути обработки строк и регулярных выражений. Эти изменения снижают трение в монорепо CI, улучшают наблюдаемость выполнения и дают более предсказуемое поведение для компилированных рабочих процессов ESM при развёртываниях и сборках в один файл.

Ключевые изменения и практическое влияние

  • bun run --parallel / --sequential — выполняйте несколько npm-скриптов одновременно или последовательно с префиксированным цветным выводом и фильтрацией, учитывающей рабочие пространства. Это практическая победа для монорепозиториев и CI: ускоряйте сборки/тесты между пакетами без внедрения пользовательских Foreman-скриптов или внешних инструментов, сохраняя понятные логи для устранения проблем.

  • ESM байткод в --compile — Bun теперь поддерживает генерацию байткода ESM при компиляции с --compile/--bytecode. Это делает скомпилированные приложения ESM более портируемыми и улучшает согласованность запуска для проектов, ориентированных на ESM, и однофайловых исполняемых файлов, нацеленных на быстрые «холодные» старты.

  • Обновление JavaScriptCore — JSC получил несколько микроархитектурных оптимизаций (SIMD-ускоренный поиск префикса в регулярных выражениях, новые строковые интринсики и улучшения JIT), что приводит к ощутимым ускорениям для кода с обилием регулярных выражений, операций со строками и паттернов доступа к размеру Map/Set — полезно для серверных конвейеров запросов, шаблонизации и задач обработки текста.

  • Эргономика тестирования: Symbol.dispose для моков — mock() и spyOn() в bun:test теперь реализуют Symbol.dispose, что позволяет автоматическое восстановление через конструкцию using. Тесты становятся безопаснее и чище (меньше ручного отключения/очистки), особенно для наборов тестов, создающих множество временных моков.

  • Совместимость профилирования и сетей — новый --cpu-prof-interval согласует параметры профайлера Bun с семантикой выборки Node.js; исправления для апгрейда HTTP/2 соединения и NO_PROXY адресуют реальные сценарии прокси, реверс-прокси и проксирования HTTP/2, которые ранее приводили к неожиданным сбоям.

Почему это важно сейчас

  • Быстрая работа монорепо CI и локальных циклов разработки: встроенная оркестрация параллельных/последовательных скриптов уменьшает число ad‑hoc-скриптов и даёт более предсказуемый, наглядный вывод при запуске множества задач пакетов параллельно. Команды часто могут убрать мелкие утилиты оркестрации и полагаться на единый инструмент выполнения.

  • Лучше развёртывания с компилированными ESM: поддержка байткода ESM уменьшает разброс между разработкой и скомпилированными артефактами и делает однофайловые скомпилированные выходы более надёжными для граничных или контейнеризированных вариантов развёртывания.

  • Реальная надёжность времени выполнения: исправления NO_PROXY, обновления HTTP/2 и сбои SIGILL на ARM закрывают пробелы, которые часто возникают при переходе от окружений разработки к образам продакшена или к неоднородным облачным экземплярам.

Рекомендации для команд полного стека

  • Попробуйте bun run --parallel в CI для независимых сборок/тестов пакетов, чтобы сократить время ожидания; сначала проверьте ясность логов и поведение при сбоях с параметром --no-exit-on-error.

  • Если вы компилируете для продакшена, протестируйте артефакты байткода ESM на целевых платформах, чтобы подтвердить запуск и совместимость с нативными модулями или внешними инструментами.

  • Перезапустите нестабильные интеграционные тесты, если вы используете прокси или прокси‑серверы HTTP/2 — исправления NO_PROXY и обновления соединения могут решить проблемы без изменений в коде.

  • Используйте новый --cpu-prof-interval при профилировании путей с низкой задержкой, чтобы собирать более высокоразрешённые выборки и сравнивать результаты с существующими базовыми значениями Node.js.

Читайте официальные примечания к выпуску для полного описания и инструкций по обновлению. (bun.sh)

Источник: Примечания к выпуску Bun (Bun v1.3.9).

Источник

Читать дальше