← Tutti gli articoli

Bun 1.0 in dev: è pronto a sostituire Node? Quasi.

04 December 20232 min di lettura

Test runner, package manager, runtime: Bun 1.0 è già più veloce di Node in tutto. Vediamo se basta per metterlo in produzione.

Bun ha rilasciato la 1.0 a settembre 2023. Tre mesi dopo, l'abbiamo provato in dev su una nostra app interna (Express + Prisma + 14k righe TypeScript) e su un'app Next.js media.

Install

bun install ha fatto il lavoro di npm install in 4,2 secondi contro 38. È un fattore 10x. Per i CI build di progetti grandi, questo da solo paga la transizione.

Test runner

L'API è quasi identica a Vitest/Jest. Sui nostri 480 test la suite girava in 6,1 secondi con Vitest. Con Bun: 2,4 secondi. Niente magic, è solo veloce.

Runtime

Eseguendo l'app Express con bun run start abbiamo guadagnato il 35% di throughput su un benchmark sintetico. In produzione la differenza è meno marcata perché il bottleneck è quasi sempre il database, non la CPU del runtime.

Cosa non funziona ancora

  • Native modules: alcuni pacchetti che dipendono da N-API specifici (sharp, bcrypt) avevano workaround in 1.0, ora migliorati ma da verificare.
  • Cluster mode / worker_threads: parità non ancora completa con Node.
  • Production hosting: a fine 2023 quasi nessun PaaS (Vercel, Railway, Fly) supporta nativamente Bun. Esegue su Docker, ma è meno comodo.

Verdetto

Per dev experience: già oggi. bun install e bun test sono il primo cambio che facciamo nei nostri repo. Per produzione: aspettiamo metà 2024, quando il supporto degli host sarà migliorato e la nostra esperienza più consolidata.