Node-alternativet Bun er prod-klar: – Jeg er imponert!

Bun 1.0 er både JavaScript-kjøremiljø, byggeverktøy, pakkehåndterer, transpilator og testbibliotek.

Ett av de mest hypede prosjektene det siste året er Bun, et JavaScript-kjøremiljø som skal kunne erstatte Node.js – i tillegg til at det også skal gjøre en masse andre verktøy overflødig.

Nå har Bun annonsert at Bun endelig er modent for å kunne rulles ut i produksjon, med lanseringen av versjon 1.0.

Reaksjonene fra utviklermiljøet ser ut til å være overveldende positive:

– Bun 1.0 er her, og den er sjokkerende overbevisende! sier Cory House, utvikler og kodekurs-instruktør.

Erstatter Node, npm, webpack

Selv om Bun er et kjøremiljø som lar deg kjøre JavaScript utenfor nettleseren (for eksempel på en server), slik som Node.js, så er den også temmelig mye annet.

– Det er en raskt, alt-i-ett-verktøykasse for å kjøre, bygge, teste og debugge JavaScript og TypeScript, fra en enkelt fil til en fullstack-applikasjon, skriver Bun i lanseringsbloggposten.

Siden Bun skal kunne erstatte Node.js, støttes alt mulig av Node.js- og Web-API-er.

Bun skal være bakoverkompatibelt med Node.js, slik at du skal kunne bruke favorittbibliotekene og -rammeverkene dine. Med Bun kan du kjøre både .js-, .ts-, .cjs-, .mjs-, .jsx-, og .tsx-filer, slik at du ikke lenger trenger TypeScript-kompilatoren tsc eller transpilatorer som Babel. Den kan også transpilere JSX-syntax til vanilla JavaScript, uten at den trenger mer enn Bun.

Ettersom Bun er en JavaScript-bundler skal du heller ikke trenge bundlere som Esbuild, Webpack, Parcel eller Rollup. Bun gjør også jobben til pakkehåndterere og er kompatibel med npm, og den leser package.json og skriver til node_modules, slik du er vant til.

Og til slutt skal den også håndtere testing og erstatte verktøy som Jest og Vitest.

Mange ganger raskere

Det fokuseres mye på ytelse, og ifølge Bun starter Bun opp opptil fire ganger raskere enn Node.js. Hvis du kjører en TypeScript-fil, som krever transpilering før den kan kjøres av Node.js, blir forskjellen enda større.

Ytelse ved kjøring av en "Hello world"-fil skrevet i TypeScript. 📸: Bun
Ytelse ved kjøring av en "Hello world"-fil skrevet i TypeScript. 📸: Bun Vis mer

Mens Node.js og Deno er basert på Googles V8-JavaScript-motor, er Bun bygget med Apples WebKit-motor.

Men selv om reaksjonene så langt ser ut til å være stort sett veldig positive, er det også enkelte utviklere som melder om problemer. Tobiloba Adedeji er utvikler av Million.js, og sier på Twitter at de var i ferd med å migrere monorepo-kodebasen til Bun, men at det viser seg at støtte for "workspaces" ikke er like robust ennå som i pnpm.

Den kjente utvikleren og YouTube-profilen Theo Brown er imidlertid overbevist, og mener Bun er bedre enn han hadde trodd.

– Bun ser ut til å løse de fleste problemene jeg har hatt med bundlere, og jeg er virkelig imponert over ytelse, sier Theo i sin gjennomgang på YouTube.