Tiho in neopazno je bila objavljena nova stabilna različica Bun – 1.1.30.
Bun je okolje za izvajanje ECMAScript / JavaScript, ki je po mnogih kazalnikih podobno nodejs. Osnova Buna je JavaScriptCore iz Apple, vendar je sam Bun, kot tudi mnogi njegovi moduli, napisan v jeziku zig. Bun si prizadeva biti kar se da združljiv s nodejs glede možnosti ukazne vrstice, podpira ECMAScript (ESM) in CommonJS module. Upravljanje paketov npm in podpora typescript sta vgrajena neposredno v aplikacijo kot nativna koda, programi v typescript pa se lahko izvajajo neposredno z razlagalnikom brez predhodne konfiguracije.
Vendar Bun ni le "kopija" nodejs po svojih zmožnostih. Poleg hitrejše izvedbe v nekaterih scenarijih (že pri zagonu aplikacije) in skoraj popolne podpore dostopnemu API-ju v nodejs, Bun ponuja široke možnosti za strežniške aplikacije – od dela s datotekami do transformacije HTML drevesa (HTMLRewriter), modula za transpilarjenje typescript (Bun.Transpiler), vgrajeno delo z bazami podatkov sqlite, modulov za interakcijo z nativnimi knjižnicami platforme prek API-ja jezika C – ffi, vgrajen testni okvir in številne druge možnosti.
Poleg tega v eksperimentalnem načinu Bun podpira integracijo s kodo v C preko prozornega klica 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("Kaj je odgovor na univerzum?", hello()); $ bun hello.js Kaj je odgovor na univerzum? 42
V tej izdaji je med drugim dodan parser CSS, temelječ na LightningCSS ki je bil posebej za to ponovno napisan iz takih legacy tehnologij kot so rust na zig, kar je omogočilo prozorno integracijo css in typescript, tako da zdaj lahko neposredno uvozite css datoteko v modul typescript:
index.ts: import ".\/style.css"; import Component from ".\/MyComponent.tsx"; \/\/ … preostanek vaše aplikacije style.css: \/* rezultat zbiranja: *\/ \/* style.css *\/ .hello { background: red; } \/* MyComponent.css *\/ .MyComponent { color: green; }
Bun omogoča zgradi celotno aplikacijo z vsemi viri v en izvršni datoteko.
Izvor: linux.org.ru
