1 апреля 2024 года состоялся релиз Bun 1.1 — среды выполнения JavaScript и TypeScript с возможностью отладки кода и поддержкой популярных веб-фрейворков. Это событие произошло спустя шесть месяцев после выхода первой мажорной версии проекта Bun 1.0. За это время команда проекта сделала более 1700 коммитов, разработчики прилагают все усилия, чтобы сделать Bun более стабильным и более совместимым с Node.js. «Мы исправили более тысячи ошибок, добавили массу новых функций и API, и теперь Bun поддерживает Windows!», — уточнили разработчики сообщества Bun.
Bun — это современная среда выполнения JS типа Node.js или Deno со встроенной поддержкой JSX и TypeScript. Она разработана с акцентом на быстром запуске, высокой производительности и самодостаточности. Внутри Bun есть транспилятор (транспилирующий компилятор) JavaScript, встроенный в среду выполнения. Это означает, что при работе с Bun можно запускать файлы JavaScript, TypeScript и даже JSX/TSX без каких-либо зависимостей.
Bun использует движок JavaScriptCore, разрабатываемый WebKit, который запускается и выполняет операции немного быстрее, а также использует память немного эффективнее, чем классические движки типа V8. Bun написан на Zig — языке программирования низкого уровня с ручным управлением памятью, чем объясняются высокие показатели его скорости.
В Bun работают полнофункциональные приложения, созданные с помощью Next.js, Remix, Nuxt, Astro, SvelteKit, Nest, SolidStart и Vite. Разработчики проекта пояснили, что Bun запускается в 4 раза быстрее, чем Node.js. Эта разница только увеличивается при запуске файла TypeScript, который требует транспиляции, прежде чем Node.js сможет его запустить. Bun запускает тестовый файл hello world на TypeScript в 5 раз быстрее, чем esbuild с Node.js.
Доработки и улучшения в Bun 1.1:
теперь вы можете запустить Bun в Windows 10 и более поздних версиях ОС, Bun для Windows проходит 98% собственного набора тестов для Bun в macOS и Linux от команды проекта;
в проект добавлены более десяти новых функций, доработок API и изменений для избежания снижения производительности при повторной передаче одних и тех же файлов, благодаря чему инструменты командной строки, такие как tsc, работают в 2 раза быстрее, чем в Bun 1.0;
доработан Bun Shell, Bun теперь является кроссплатформенной оболочкой — как bash, но также и для Windows;
исправлены баги и улучшена поддержка для API-интерфейсов Node.js, включая HTTP/2 client и сообщений IPC между Bun и Node.js;
оптимизирован код Bun для поддержки стандартных веб-интерфейсов API;
значительно повышена стабильность в работе и улучшена производительность при установке Bun;
упрощены способы написания, запуска и отладки кода JavaScript и TypeScript;
тайм-аут сети по умолчанию увеличен до 5 минут. Это соответствует настройкам по умолчанию в Google Chrome и должно помочь при соединениях с высокой задержкой.
Над выпуском проекта с открытым исходным кодом Bun 1.1 работали 364 контрибутора. Также команда Bun ищет инженеров, дизайнеров, бывших или нынешних разработчиков движков JavaScript, таких как V8, WebKit, Hermes и SpiderMonkey, чтобы пригласить на работу в офис в Сан-Франциско и вместе построить будущее JavaScript.
В сентябре 2023 года разработчик Эмиль Привер провёл простой HTTP-тест «Go против Rust против Bun против Node», чтобы оценить производительность Bun 1.0. Привер создал эталонный тест для измерения количества HTTP-вызовов, которые сервер может обработать в секунду. В тесте сравнивается производительность Bun с GO, Rust и Node, поскольку эти языки часто используются веб-разработчиками для аналогичных целей.
«Приятно видеть, что Bun работает хорошо и, похоже, может конкурировать с Rust и Go по HTTP. Я также очень рад, что теперь есть достойная среда выполнения, которая «делает все это». В отличие от таких языков, как Rust и Go, которые предоставляют менеджеры пакетов, Bun также их предоставляет. Node, с другой стороны, имеет различные менеджеры пакетов (хотя NPM поставляется с Node) и множество разных способов достижения одной и той же цели, где каждый метод быстрее других. Хотя я в целом не большой поклонник написания JavaScript, я с нетерпением жду возможности создать что-нибудь с помощью Bun», — подытожил Привер.
Источник: habr.com