Π’ΠΈΡ ΠΎ ΠΈ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π±ΡΠ»Π° ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π½ΠΎΠ²Π°Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ 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