Платформа/journal
Bun 1.1 в продакшне
Bun 1.1 в продакшне: готов или нет на конец 2024
← ЖурналПлатформа6 мин чтения

Bun 1.1 в продакшне: готов или нет на конец 2024

Команда nordiqdev
студия

Год назад Bun 1.0 был громким релизом и тихим прототипом в проде. К версии 1.1 (апрель 2024) и далее по minor-релизам ситуация изменилась. Расскажем, где у нас Bun уже бежит, и где мы пока остаёмся на Node.js.

Где Bun однозначно выигрывает

Скрипты, миграции, CI-задачи

Bun стартует за 30 мс, Node - за 200 мс. На скрипте, который запускается 50 раз в CI, это уже минуты. Все наши seed-скрипты, миграционные обёртки, lint-агрегаторы переехали на Bun.

Установка зависимостей

bun install в 5–15 раз быстрее npm и в 3–8 раз быстрее pnpm на наших проектах. На большом монорепо время CI-этапа install сократилось с 4 минут до 35 секунд. Это самая лёгкая победа Bun.

Тесты

bun test - встроенный jest-совместимый раннер. На простых юнит-тестах работает быстрее vitest и заметно быстрее jest. На сложных проектах с большим количеством mock-ов - пока проседает.

Где мы пока на Node.js

Production HTTP-сервера на критичной нагрузке. Bun стабильнее, чем год назад, но мы видели несколько случаев странных утечек памяти под продолжительной нагрузкой и с долгоживущими WebSocket-соединениями. Node.js в этом классе задач - проверенный, отладочный инструментарий зрелый.

Серверы с тяжёлым native-зависимостями: image processing (sharp), ML (onnxruntime), некоторые drivers БД. Нативная совместимость подтянулась, но edge-cases встречаются.

Что нас удивило

  • Совместимость с Node.js APIs - выше, чем ожидали. Большинство наших скриптов запустились без правок.
  • Встроенный SQLite-клиент с синхронным API - приятно для скриптов и встроенных кэшей.
  • Bun.serve() даёт неплохой HTTP-сервер из коробки, но мы предпочитаем Hono поверх него.
  • Bundler работает, но мы всё равно используем esbuild/Rollup для прод-сборок.

Наш текущий стек

  • Локальная разработка: Bun как раннер скриптов и тест-раннер. Application server остаётся на Node.
  • CI: Bun для install и test, Node для интеграционных тестов.
  • Прод: Node.js. Bun рассматриваем для нового сервиса в следующем квартале.
Теги
#bun#node.js#javascript#runtime#платформа
Студия nordiqdev

Делаем мобильные приложения, веб-сервисы и AI на заказ

Если задача из текста выглядит знакомой и нужна команда, которая соберёт продукт - расскажите подробнее. Вернёмся в течение 24 часов с разбором.