Bun - альтернатива NodeJS, которая позволяет более быстро и эффективно пользоваться возможностями разработки на JS
Установка тут достаточно простая и выполняется буквально одной командой.
# установка пакета
bun install <pkg>
# бандлинг проекта
bun build ./index.tsx
# запуск тестов
bun test
# выполнение установленного пакета
bunx cowsay 'Hello, world!'
# создание нового проекта
bun init
# запуск команды из package.json
bun run start
Так выглядит простейший сервер на Bun
index.ts
import Bun, { file, serve } from "bun";
const server = serve({
port: 3000,
fetch(request) {
return new Response("Welcome to Bun!");
},
});
console.log(`Listening on localhost:${server.port}`);
Так же из коробки он провайдит достаточно большое количество API, которые покрывают почти все нужные потребности для backend-разработки
Bun.serve({
fetch(req, server) {}, // upgrade logic
websocket: {
message(ws, message) {}, // a message is received
open(ws) {}, // a socket is opened
close(ws, code, message) {}, // a socket is closed
drain(ws) {}, // the socket is ready to receive more data
},
});
Встроенный сборщик, который работает на esbuild и их конфигурация будет достаточно схожа друг с другом
await Bun.build({
entrypoints: ['./index.tsx'],
outdir: './build',
});
Тесты абсолютно аналогичны Jest
import { expect, test, describe } from "bun:test";
describe("arithmetic", () => {
test("2 + 2", () => {
expect(2 + 2).toBe(4);
});
test("2 * 2", () => {
expect(2 * 2).toBe(4);
});
});