En ny stabil version er stille og roligt blevet offentliggjort Bun – 1.1.30.
Bun er en kørselmiljø for ECMAScript / JavaScript, som i mange henseender svarer til nodejs. Bun er baseret på JavaScriptCore fra Apple, men selve Bun, ligesom mange af dets moduler, er skrevet i zig. Bun stræber efter at være så kompatibel som muligt med nodejs, hvad angår kommandolinjeindstillinger, understøtter ECMAScript (ESM) og CommonJS-moduler. Npm-pakkestyring og understøttelse af typescript er indbygget direkte i applikationen som native kode, og programmer skrevet i typescript kan køres direkte af fortolkeren uden forudgående konfiguration.
Men Bun er ikke kun en "kopi" af nodejs i sine funktioner. Udover hurtigere ydeevne i flere scenarier (startende direkte ved opstart af applikationen) og næsten fuld understøttelse af det tilgængelige nodejs API, tilbyder Bun omfattende muligheder for serverapplikationer – fra filhåndtering til transformation af HTML-træet (HTMLRewriter), typescript transpiler-modul (Bun.Transpiler), indbygget databasehåndtering sqlite, moduler til interaktion med native platformbiblioteker gennem C API – ffi, indbygget testværktøjer og mange andre funktioner.
Desuden understøtter Bun i eksperimentel tilstand integration med C-kode gennem transparent kald 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("Hvad er svaret på universet?", hello()); $ bun hello.js Hvad er svaret på universet? 42
I denne version er der blandt andet tilføjet en CSS-parser baseret på LightningCSS som specielt til dette formål er blevet genopskrevet fra ældre teknologier som rust til zig, hvilket har gjort det muligt at integrere CSS og typescript transparent, og nu kan du importere en CSS-fil direkte i typescript-modulet:
index.ts: import ".\/style.css"; import Component from ".\/MyComponent.tsx"; // … resten af din app style.css: /* build result: */ /* style.css */ .hello { background: red; } /* MyComponent.css */ .MyComponent { color: green; }
Bun giver mulighed for at samle hele applikationen med alle ressourcer i én eksekverbar fil.
Kilde: linux.org.ru
