Uma nova versão estável foi publicada silenciosamente. Bun – 1.1.30.
Bun é um ambiente de execução ECMAScript / JavaScript que é semelhante em muitos aspectos nodejs. O Bun é baseado no JavaScriptCore da Apple, mas o próprio Bun, assim como muitos de seus módulos, é escrito na linguagem zig. O Bun busca ser o mais compatível possível com o nodejs em opções de linha de comando, suportando módulos ECMAScript (ESM) e CommonJS. O gerenciamento de pacotes npm e o suporte para typescript estão incorporados diretamente no aplicativo como código nativo, e os programas em typescript podem ser executados diretamente pelo interpretador sem necessidade de configuração prévia.
No entanto, o Bun não é apenas uma "cópia" do nodejs em termos de funcionalidades. Além de ter um desempenho mais rápido em uma série de cenários (começando desde a inicialização do aplicativo) e quase suporte total à API disponível no nodejs, o Bun oferece amplas funcionalidades para aplicações no servidor – desde o trabalho com arquivos até a transformação da árvore HTML (HTMLRewriter), um módulo de transpiração typescript (Bun.Transpiler), trabalho embutido com bancos de dados sqlite, módulos para interação com bibliotecas nativas da plataforma através da API da linguagem C – ffi, um conjunto de ferramentas de teste e muitas outras possibilidades.
Além disso, em modo experimental, o Bun suporta a integração com código C através da chamada transparente 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("Qual é a resposta para o universo?", hello()); $ bun hello.js Qual é a resposta para o universo? 42
Nesta versão, entre outras coisas, foi adicionado um analisador CSS baseado em LightningCSS que foi especificamente reescrito de tecnologias legadas como rust para zig, o que permitiu a integração transparente de css e typescript, e agora é possível importar um arquivo css diretamente em um módulo typescript:
index.ts: import ".\/style.css"; import Component from ".\/MyComponent.tsx"; // … resto do seu aplicativo style.css: /* resultado da construção: */ /* style.css */ .hello { background: red; } /* MyComponent.css */ .MyComponent { color: green; }
O Bun permite construir unir toda a aplicação com todos os recursos em um único arquivo executável.
Fonte: linux.org.ru
