Ticho a nenápadne bola zverejnená nová stabilná verzia Bun – 1.1.30.
Bun je runtime prostredie pre ECMAScript / JavaScript, ktoré je v mnohých aspektoch podobné nodejs. Bun využíva JavaScriptCore od Apple, ale samotný Bun, rovnako ako mnohé jeho moduly, je napísaný v zig. Bun sa snaží byť maximálne kompatibilný s nodejs pokiaľ ide o možnosti príkazového riadku, podporuje moduly ECMAScript (ESM) a CommonJS. Správa balíkov npm a podpora typescript sú zabudované priamo v aplikácii ako natívny kód, a programy napísané v typescripte môžu byť vykonávané priamo interpretom bez predchádzajúcej konfigurácie.
Bun však nie je iba „kópiou“ nodejs pokiaľ ide o jeho funkcie. Okrem rýchlejšieho výkonu v mnohých scénaroch (začínajúc priamym spustením aplikácie) a takmer úplnej podpory dostupného API v nodejs, Bun poskytuje široké možnosti pre serverové aplikácie – od manipulácie s súbormi po transformáciu HTML stromu (HTMLRewriter), modul pre transpilaáciu typescriptu (Bun.Transpiler), zabudovanú prácu s databázami sqlite, moduly na interakciu s natívnymi knižnicami platformy cez API jazyka C – ffi, zabudovaný testovací framework a množstvo ďalších možností.
Okrem toho v experimentálnom režime Bun podporuje integráciu s kódom napísaným v C cez transparentný volací 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("Aká je odpoveď na vesmír?", hello()); $ bun hello.js Aká je odpoveď na vesmír? 42
V tejto verzii bol medzi inými pridaný parser CSS na báze LightningCSS , ktorý bol na to prepracovaný z takých legacy technológií ako rust na zig, čo umožnilo transparentnú integráciu css a typescriptu, a teraz je možné importovať css súbor priamo do modulu typescript:
index.ts: import ".\/style.css"; import Component from ".\/MyComponent.tsx"; // … zvyšok vašej aplikácie style.css: \/* výsledok zloženia: *\ \/* style.css *\/ .hello { background: red; } \/* MyComponent.css *\/ .MyComponent { color: green; }
Bun umožňuje zhromaždil zabaliť celé aplikácie vrátane všetkých zdrojov do jedného spustiteľného súboru.
Zdroj: linux.org.ru
