Встречайте новую среду выполнения JavaScript — Bun.sh. Кто-то скажет, что это был задуман как снайперский выстрел в Node. Для разработчиков, которые работают со стеком ME(A/R/S)N, Bun.sh просто заменил Node и пригласил супермена для выполнения той же работы. Разница между Bun и Node в том, что Bun — это не только среда выполнения, но и сборщик задач, компилятор TS и все в одном месте.
Кто-то скажет, что Deno уже существует, но в этом случае я бы поспорил относительно показателей производительности. Самое приятное то, что Bun поддерживает API-интерфейсы узлов и предназначен для полной замены NodeJS. В настоящее время цель состоит в том, чтобы обеспечить эффективную и производительную работу большей части серверного JS.
Вот некоторые особенности Bun, извлеченные из их документации:
- Скорость. Процессы Bun сейчас запускаются в 4 раза быстрее, чем Node.js (попробуйте сами!)
- Поддержка TypeScript и JSX. Вы можете напрямую выполнять файлы
.jsx
,.ts
и.tsx
; Транспилятор Бана преобразует их в стандартный JavaScript перед выполнением. - Совместимость ESM и CommonJS. Мир движется к модулям ES (ESM), но миллионы пакетов на npm по-прежнему требуют CommonJS. Бан рекомендует модули ES, но поддерживает CommonJS.
- API, соответствующие веб-стандартам. Bun реализует стандартные веб-API, такие как
fetch
,WebSocket
иReadableStream
. Bun работает на движке JavaScriptCore, разработанном Apple для Safari, поэтому некоторые API, такие какHeaders
иURL
, напрямую используют реализацию Safari. - Совместимость Node.js. Помимо поддержки разрешения модулей в стиле Node, Bun стремится обеспечить полную совместимость со встроенными глобальными переменными Node.js (
process
,Buffer
) и модулями (path
,fs
,http
и т. д.) Это текущая работа, которая еще не завершена. Текущий статус см. на странице совместимости.
Быстрый старт проекта Bun
Запустите bun init
, чтобы создать новый проект.
Откройте index.ts
и вставьте следующий фрагмент кода — это для простого HTTP-сервера.
const server = Bun.serve({ port: 3000, fetch(req) { return new Response("Bun!"); }, }); console.log(`Listening on http://localhost:${server.port} ...`);
Запустите файл, используя bun index.ts
. Вы должны увидеть простую страницу с надписью «Булочка!».
Для получения более подробной информации о Bun и его экосистеме посетите https://bun.sh/docs.
Ковабанга — Т