Tih i neprimjetan, nova stabilna verzija je objavljena Bun – 1.1.30.
Bun je izvršno okruženje za ECMAScript / JavaScript, po mnogim parametrima slično nodejs. Temelji se na JavaScriptCore od Apple-a, ali je sam Bun, kao i mnogi njegovi moduli, napisan na jeziku zig. Bun nastoji biti što je moguće kompatibilniji s nodejs u opcijama komandne linije, podržava ECMAScript (ESM) i CommonJS module. Upravljanje paketima npm i podrška typescript ugrađeni su direktno u aplikaciju kao nativni kod, i programi napisani u typescript-u mogu se izvoditi direktno interpreterom bez prethodne konfiguracije.
Međutim, Bun nije samo "kopija" nodejs po svojim mogućnostima. Osim bržeg rada u nizu scenarija (od samog pokretanja aplikacije) i gotovo potpune podrške dostupnom u nodejs API-ju, Bun pruža široke mogućnosti za server aplikacije – od rada s datotekama do transformacije HTML stabla (HTMLRewriter), modula za transpiling typescript-a (Bun.Transpiler), ugrađene podrške za baze podataka sqlite, modula za interakciju s nativnim bibliotekama platforme preko C API-ja – ffi, ugrađeni alat za testiranje i mnoge druge mogućnosti.
Osim toga, u eksperimentalnom modu Bun podržava integraciju s C kodom putem transparentnog poziva tcc:
hello.c: int hello() { return 42; } hello.js: import { cc } from "bun:ffi"; import source from ". /hello.c" with { type: "file" }; const { symbols: { hello }, } = cc({ source, symbols: { hello: { args: [], returns: "int", }, }, }); console.log("Koji je odgovor na svemir?", hello()); $ bun hello.js Koji je odgovor na svemir? 42
U ovoj verziji, između ostalog, dodat je CSS parser temeljen na LightningCSS koji je posebno za to prepisan s legacy tehnologija kao što su rust na zig, što je omogućilo transparentnu integraciju css-a i typescript-a, i sada možete direktno uvesti css datoteku u typescript modul:
index.ts: import ". /style.css"; import Component from ". /MyComponent.tsx"; // … ostatak vaše aplikacije style.css: /* rezultat izgradnje: */ /* style.css */ .hello { background: red; } /* MyComponent.css */ .MyComponent { color: green; }
Bun omogućuje skupiti cijelu aplikaciju sa svim resursima u jedan izvršni fajl.
Izvor: linux.org.ru
