Bun, toolkit e bundler per applicazioni JavaScript e TypeScript considerato la vera alternativa a Node.JS, è ora in versione 1.1.45. Questo aggiornamento porta con sé diverse nuove funzionalità tra cui un'API per l'archiviazione S3 e il supporto per il debugging con Chrome. È previsto inoltre l'arrivo di un client PostgreSQL nella versione 1.2 che dovrebbe essere rilasciata a breve.
Le nuove funzionalità di Bun 1.1.45
L'API S3 offre due modalità di inizializzazione: Bun.s3 legge le credenziali dalle variabili d'ambiente, Bun.S3Client utilizza invece delle credenziali specifiche. È anche possibile generare un URL prefirmato con una scadenza e utilizzabile senza credenziali. L'introduzione di questa API ha però generato alcune critiche da parte di sviluppatori preoccupati per l'inclusione di API specifiche nel runtime. Jared Sumner, autore di Bun, ha comunque sottolineato che l'API S3 è stabile ormai da anni e i cambiamenti che potrebbero compromettere il funzionamento di Bun sono abbastanza improbabili.
Un'altra novità è il supporto per il bundling di file HTML e CSS. Questa funzionalità è attivabile tramite i flag --experimental-html
e --experimental-css
, permette di ottenere un unico file JavaScript e uno CSS e include tecniche come il tree-shaking per la rimozione del codice non necessario con l'obiettivo di facilitare lo sviluppo di siti statici e applicazioni web.
Bun punta ora a ridurre i tempi di avvio e l'utilizzo di memoria rispetto all'engine V8. Rimangono però dei problemi legati alla compatibilità con gli strumenti di debugging. Il runtime è comunque in grado di generare uno heap snapshot compatibile con V8 e consente l'uso di Chrome DevTools per il debugging della memoria.
Il client per PostgreSQL
Oltre al driver integrato per SQLite Bun introdurrà presto anche un client PostgreSQL che è già disponibile nella build canary.
L'aggiornamento 1.1.45, ma in realtà già l'1.1.3, apporta anche numerose correzioni tra cui la risoluzione di una perdita di memoria legata a WebSocket e un errore di stack overflow causato dall'uso di troppe istruzioni if
. La compatibilità con Node.JS è infine migliorata con il 100% dei test node:path
superati e oltre il 98% dei test node:zlib
completati.