Что это такое
Bun — попытка собрать повседневный JavaScript-инструментарий в один быстрый исполняемый файл. Внутри есть рантайм, пакетный менеджер, запуск скриптов, тестовый раннер, поддержка TypeScript и JSX, а также совместимость с большой частью Node.js-мира.
Проект написан на Zig и использует JavaScriptCore. Его идея не только в скорости, но и в уменьшении количества отдельных инструментов: вместо node, npm, npx, тестового раннера и сборщика разработчик может попробовать один бинарник.
Что внутри и как используют
Внутри — рантайм, пакетный менеджер, тесты, документация, совместимость с Node.js API, загрузчики файлов, lockfile и интеграции. Bun можно применять в новых проектах, а часть команд работает и в существующих Node.js-приложениях.
Один бинарник для нескольких задач
Пример показывает, что Bun пытается заменить сразу несколько привычных команд из Node.js-разработки.
bun install
bun run start
bun test
bun run index.tsx
bunx cowsay "Hello, world!
Типовой сценарий: установить зависимости через `bun install`, запускать scripts через `bun run`, выполнять TypeScript-файлы напрямую, запускать тесты через `bun test`. Для команд это способ ускорить локальную разработку и упростить набор инструментов.
Сильные стороны и ограничения
Сильная сторона Bun — цельность и скорость старта. Он особенно привлекателен там, где хочется меньше конфигурации и быстрее выполнять типовые операции.
Ограничение — совместимость. Node.js-экосистема огромна, и не каждый пакет или редкий API будет вести себя одинаково. Перед переносом большого проекта нужно прогнать тесты, сборку, серверные сценарии и CI.