В сентябре Jarred Sumner объявил Bun 1.0 production-ready. Все обещания: быстрее Node, встроенный package manager, bundler, test runner. Мы решили не верить на слово.
Что мы протестировали
- Внутренний сервис на Express + PostgreSQL.
- Сборка двух фронтенд-проектов.
- npm install в большом монорепо (~1100 зависимостей).
Числа
- bun install - 8 секунд против 78 секунд npm. Это самая впечатляющая разница.
- Запуск Express-сервиса - холодный старт быстрее на 35%.
- RPS на простом эндпоинте - 1.7x по сравнению с Node.
- Сборка фронтенда - на маленьком проекте +2x скорости, на большом упёрлась в плагины Vite.
- Test runner - быстрее Jest, но API ещё нестабильный.
Где сломалось
Один наш сервис использовал нативный модуль для криптографии - не завёлся. Несколько npm-пакетов с post-install скриптами вели себя странно. Один пакет, который читал require.cache напрямую, упал. Не страшно, но требует подготовки.
Что мы решили
- Использовать bun install везде, где можно. Это чистая победа.
- Бэкенд-сервисы оставляем на Node до Bun 1.x, version 5+. Production стабильность важнее процентов скорости.
- Новые инструменты и скрипты сразу пишем под Bun.
- Test runner Bun - ждём год, пока стабилизируется.