Tyst och diskret publicerades en ny stabil version Bun – 1.1.30.
Bun – en miljö för att köra ECMAScript / JavaScript, som på många sätt liknar nodejs. I botten av Bun används JavaScriptCore från Apple, men själva Bun liksom många av dess moduler är skrivna på språket zig. Bun strävar efter att vara så kompatibel som möjligt med nodejs när det gäller kommandoradsalternativ, stöder ECMAScript-moduler (ESM) och CommonJS. Paketshantering med npm och stöd för typescript är inbyggt direkt i applikationen som inhemsk kod, och program skrivna i typescript kan köras direkt av tolkaren utan förkonfiguration.
Men Bun är inte bara en "kopi" av nodejs när det gäller funktioner. Förutom att det är snabbare i flera scenarier (från att starta applikationen) och nästan fullständig support för nodejs API, erbjuder Bun omfattande möjligheter för serverbaserade applikationer – från filhantering till transformering av HTML-träd (HTMLRewriter), typescript-transpilermodulen (Bun.Transpiler), inbyggt arbete med databaser sqlite, moduler för att interagera med plattformens inbyggda bibliotek genom C-språkets API – ffi, inbyggda testverktyg och många andra möjligheter.
Dessutom stöder Bun i experimentellt läge integration med C-kod genom transparenta anrop 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("Vad är svaret på universum?", hello()); $ bun hello.js Vad är svaret på universum? 42
I den här utgåvan lades, bland annat, en CSS-parser baserat på LightningCSS som speciellt för detta har skrivits om från sådana legacy-teknologier som rust i zig, vilket möjliggjorde transparent integration av css och typescript, och nu kan du importera en css-fil direkt i en typescript-modul:
index.ts: import ".\/style.css"; import Component from ".\/MyComponent.tsx"; // … resten av din applikation style.css: /* resultat av bygget: */ /* style.css */ .hello { background: red; } /* MyComponent.css */ .MyComponent { color: green; }
Bun gör det möjligt samla att ha hela applikationen med alla resurser i en enda körbar fil.
Källa: linux.org.ru
