Bun v1.1.30

Π’ΠΈΡ…ΠΎ ΠΈ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π±Ρ‹Π»Π° ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° новая ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ вСрсия Bun – 1.1.30.

Bun – это срСда выполнСния ECMAScript / JavaScript, ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ аналогичная nodejs. Π’ основС Bun ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ JavaScriptCore ΠΎΡ‚ Apple, Π½ΠΎ сам Bun ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ написан Π½Π° языкС zig. Bun стараСтся Π±Ρ‹Ρ‚ΡŒ максимально совмСстимым с nodejs ΠΏΠΎ опциям ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ECMAScript (ESM) ΠΈ CommonJS. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ npm ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° typescript встроСны прямо Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° typescript ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Однако Bun Π½Π΅ являСтся лишь «ΠΊΠΎΠΏΠΈΠ΅ΠΉ» nodejs ΠΏΠΎ своим возмоТностям. Помимо Π±ΠΎΠ»Π΅Π΅ быстрой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² рядС сцСнариСв (начиная прямо с запуска прилоТСния) ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ доступного Π² nodejs API, Bun прСдоставляСт ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° сСрвСрС – ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π΄ΠΎ трансформации HTML-Π΄Π΅Ρ€Π΅Π²Π° (HTMLRewriter), ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ транспиляции typescript (Bun.Transpiler), встроСнной Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… sqlite, ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ для взаимодСйствия с Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Ρ‡Π΅Ρ€Π΅Π· API яызка Π‘ΠΈ – ffi, встроСнный инструмСнтарий тСстирования ΠΈ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… возмоТностСй.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Bun ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Π‘ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² 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("What is the answer to the universe?", hello()); $ bun hello.js What is the answer to the universe? 42

Π’ этом Ρ€Π΅Π»ΠΈΠ·Π΅ срСди ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ парсСр CSS Π½Π° основС LightningCSS ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для этого Π±Ρ‹Π» пСрСписан с Ρ‚Π°ΠΊΠΈΡ… legacy-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΊΠ°ΠΊ rust Π½Π° zig, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ css ΠΈ typescript, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ css-Ρ„Π°ΠΉΠ» Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ typescript:

index.ts: import "./style.css"; import Component from "./MyComponent.tsx"; // … rest of your app style.css: /* Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сборки: */ /* style.css */ .hello { background: red; } /* MyComponent.css */ .MyComponent { color: green; }

Bun позволяСт ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ всё ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ со всСми рСсурсами Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ».

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru