Onopgemerkt werd de nieuwe stabiele versie gepubliceerd Bun ā 1.1.30.
Bun is een runtime voor ECMAScript / JavaScript, die in veel opzichten vergelijkbaar is met nodejs. Bun is gebaseerd op JavaScriptCore van Apple, maar Bun zelf en veel van zijn modules zijn geschreven in de programmeertaal zig. Bun streeft ernaar zo compatibel mogelijk te zijn met nodejs als het gaat om commandoregelopties, ondersteunt ECMAScript-modules (ESM) en CommonJS. Het pakketbeheer npm en ondersteuning voor typescript zijn ingebouwd als native code, en programma's in typescript kunnen direct door de interpreter worden uitgevoerd zonder voorafgaande configuratie.
Bun is echter niet slechts een 'kopie' van nodejs wat betreft mogelijkheden. Naast snellere prestaties in een aantal scenario's (vanaf het opstarten van de applicatie) en bijna volledige ondersteuning van de beschikbare nodejs API, biedt Bun brede mogelijkheden voor servertoepassingen ā van bestandsbeheer tot transformatie van de HTML-boom (HTMLRewriter), een typescript-transpiler module (Bun.Transpiler), ingebouwde databasefunctionaliteit sqlite, modules voor interactie met native bibliotheken via de C API ā ffi, ingebouwde testtools en een scala aan andere mogelijkheden.
Bovendien ondersteunt Bun in experimentele modus de integratie met C-code via transparante aanroepen 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("Wat is het antwoord op het universum?", hello()); $ bun hello.js Wat is het antwoord op het universum? 42
In deze release is onder andere een CSS-parser toegevoegd, gebaseerd op LightningCSS , die speciaal voor dit doel is herschreven van legacy-technologieƫn zoals rust naar zig, wat een naadloze integratie van css en typescript mogelijk maakte, en nu is het mogelijk om een css-bestand rechtstreeks in een typescript-module te importeren:
index.ts: import ".\/style.css"; import Component from ".\/MyComponent.tsx"; // ⦠rest van je applicatie style.css: /* resultaat van de bundeling: */ /* style.css */ .hello { background: red; } /* MyComponent.css */ .MyComponent { color: green; }
Bun maakt het mogelijk te verzamelen om de hele applicatie met al zijn bronnen in ƩƩn uitvoerbaar bestand te bundelen.
Bron: linux.org.ru
