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 is here and it’s shockingly compelling.
— Cory House (@housecor) September 9, 2023
Bun is a lightning fast runtime, build tool, bundler, package manager, and testing tool, all rolled into one.
Bun replaces Node, npm, Yarn, pnpm, tsc, Jest, Vite, esbuild, Babel, webpack, and much more.https://t.co/W3pMWHgZjg
– 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.
Her er JavaScript-prosjektene som trender nå - ett skiller seg ut
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.
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.
Status update:
— Tobiloba🥑 (@toby_solutions) September 11, 2023
I was gonna migrate the @milliondotjs codebase to bun, but, as it turns out; workspaces support (cos Million uses Monorepos) isn't as robust yet compared to pnpm's.
Thank you @jarredsumner, I hope to integrate this very soon.
Well, we updated installation! pic.twitter.com/KIFg0Mh3Mn
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.