Pulumi внедрил поддержку Bun как полноценного runtime, обеспечивая разработчикам преимущества по скорости и удобству работы. Теперь, благодаря версии Pulumi 3.227.0, без установки Node.js можно запускать всю инфраструктуру с использованием Bun.
Контекст развития Bun
Bun, появившийся в 2022 году, был разработан для обеспечения быстрого выполнения JavaScript. Этот runtime предлагает пакетный менеджер, бандлер и среду тестирования в одном решении, что значительно упрощает процесс разработки. В сентябре 2023 года он обрёл статус стабильной версии 1.0.
При этом Bun использует JavaScriptCore, движок от Apple, вместо V8, что позволяет достигать более быстрых времён старта — до 5–15 мс, по сравнению с 60–120 мс у Node.js и Deno. Примечательной особенностью — приобретение Bun компанией Anthropic, что обеспечило дополнительное финансирование и поддержку проекта.
Преимущества для разработчиков
Теперь Bun позволяет запускать TypeScript файлы без необходимости компиляции, что существенно упрощает рабочий процесс разработчиков. Установки пакетов стали быстрее до 35 раз, что особенно актуально в CI/CD пайплайнах. Кроме того, Bun ставит цель на полную совместимость с Node.js, что делает его превосходным выбором для существующих пакетов в проектах Pulumi.
Однако существуют ограничения: некоторые функции, такие как callback функции и динамические провайдеры, остаются неподдерживаемыми в новой среде, и команды, использующие их, должны продолжать работать с Node.js, но могут уже воспользоваться ускорением установок пакетов.
Практические выводы для российских разработчиков
Для разработчиков в России это обновление открывает новые горизонты. Использование Bun в проектах Pulumi будет способствовать ускорению процессов разработки и снижению технической долговечности и затрат. Если вы планируете миграцию с Node.js, обновление около двух строк в конфигурации будет достаточно для начала работы с Bun.
Будущее Bun выглядит многообещающим. Следующий шаг — дальнейшее углубление функционала и увеличение сообщества разработчиков вокруг этого инструмента.