āĻŦāĻžāύ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ, Node.js-āĻāϰ āĻŦāĻŋāĻāϞā§āĻĒ āĻšāĻŋāϏā§āĻŦā§ āĻŦāĻŋāĻāĻļāĻŋāϤ āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻ, JSX āĻāĻŦāĻ TypeScript-āĻ āϞā§āĻāĻž āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāĻžāύāĻā§āϞāĻŋāϰ āĻāĻāĻāĻāĻžāĻŦā§ āϏāĻŽā§āĻĒāĻžāĻĻāύā§āϰ āĻāύā§āϝ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, C-āϤ⧠āϞā§āĻāĻž āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰāĻā§āϞāĻŋāĻā§ āĻāĻŽā§āĻĒāĻžāĻāϞ āĻ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻ āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻžāĻŽā§āϞāĻ āĻā§āώāĻŽāϤāĻž āϰāϝāĻŧā§āĻā§āĨ¤ āĻĒā§āϰā§āĻŦā§, āύāĻŋāĻŽā§āύ-āϏā§āϤāϰā§āϰ āĻā§āĻĄ āĻāϞ āĻāϰāĻžāϰ āĻāύā§āϝ āĻšāϝāĻŧ āĻāύ-āĻāĻĒāĻŋāĻāĻ āĻ ā§āϝāĻžāĻĄ-āĻ āύ āϤā§āϰāĻŋ āĻāϰāĻž āĻŦāĻž āĻāϝāĻŧā§āĻŦ āĻ ā§āϝāĻžāϏā§āĻŽā§āĻŦāϞāĻŋ āĻĢāϰā§āĻŽā§āϝāĻžāĻā§ (WASM/WASI) āĻā§āĻĄ āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰāĻž āĻĒā§āϰāϝāĻŧā§āĻāύ, āϝāĻž āĻŦāĻŋāĻāĻžāĻļāĻā§ āĻāĻāĻŋāϞ āĻāϰ⧠āϤā§āϞ⧠āĻāĻŦāĻ āĻāĻŋāĻā§ āĻŦāĻŋāϧāĻŋāύāĻŋāώā§āϧ āĻāϰā§āĻĒ āĻāϰā§āĨ¤ āĻāĻāύ C āĻā§āĻĄ āϏāϰāĻžāϏāϰāĻŋ āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āĻāĻŽā§āĻŦā§āĻĄ āĻāϰāĻž āϝāĻžāϝāĻŧ āĻāĻŦāĻ TinyCC āĻāĻŽā§āĻĒāĻžāĻāϞāĻžāϰ, āϏā§āĻāϏāĻžāĻĨā§ āĻāϤāĻŋāĻļā§āϞāĻāĻžāĻŦā§ āϞāĻŋāĻā§āĻāϝā§āĻā§āϤ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĢā§āϞāĻžāĻāϤ⧠āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤ "bun:ffi" āĻĨā§āĻā§ { cc } āĻāĻŽāĻĻāĻžāύāĻŋ āĻāϰā§āύ; āĻāĻā§āϏāĻĒā§āϰā§āĻ āĻāύā§āϏāĻ { āĻĒā§āϰāϤā§āĻ: { āĻšā§āϝāĻžāϞ⧠}, } = cc({ āĻāϤā§āϏ: "./hello.c", āĻĒā§āϰāϤā§āĻ: { āĻšā§āϝāĻžāϞā§: { āĻĢā§āϰāϤ: "void", args: [], }, }, }); āĻšā§āϝāĻžāϞā§();
C āĻāĻžāώāĻžāϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ, bun:ffi āϞā§āϝāĻŧāĻžāϰāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ, āϝāĻž āĻŽā§āĻļāĻŋāύā§āϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞā§āϤ⧠āϏā§āϰā§āϏ āĻā§āĻĄ āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰā§, āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻļāύā§āϰ āϏāĻŽāϝāĻŧ āĻāĻāĻŋ āĻŽā§āĻŽāϰāĻŋāϤ⧠āϏāύā§āύāĻŋāĻŦā§āĻļāĻŋāϤ āĻāϰ⧠āĻāĻŦāĻ JavaScript āĻāĻŦāĻ C-āĻāϰ āĻŽāϧā§āϝ⧠āĻĄā§āĻāĻž āĻĒā§āϰāĻāĻžāϰā§āϰ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āϰā§āĻĒāĻžāύā§āϤāϰ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤ āĻāĻāĻž āĻāϞā§āϞā§āĻā§āϝ āϝ⧠āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰāĻž C āĻā§āĻĄ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻāĻžāϰāĻšā§āĻĄ āĻŽāĻŋāύāĻŋāĻŽāĻžāĻāĻ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻāĻā§āϏāĻāĻžāϰā§āύāĻžāϞ C āĻĢāĻžāĻāĻļāύ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāϞā§āϰ āĻāύā§āϝ āĻĒā§āϰāĻžāϝāĻŧ 2 āύā§āϝāĻžāύā§āϏā§āĻā§āύā§āĻĄā§āϰ āĻŦāĻŋāϞāĻŽā§āĻŦ āĻāĻāĻžāϝāĻŧāĨ¤ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦā§, āĻāĻāĻŋ āĻĻā§āĻāĻžāύ⧠āĻšāϝāĻŧā§āĻā§ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻĒāύāĻŋ āĻā§āĻ āĻāĻŋāĻĄāĻŋāĻāĻā§āϞāĻŋ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰāϤ⧠āϏāϰāĻžāϏāϰāĻŋ FFmpeg āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāĻā§āϞāĻŋ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ - āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻĢā§āϰā§āĻ āĻāϰāĻž āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻŋāĻĄāĻŋāĻāϰ āĻāύā§āϝ āĻŽā§āĻŽāϰāĻŋ āĻŦāϰāĻžāĻĻā§āĻĻ āĻāϰāĻžāϰ āĻŽāϤ⧠āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒāĻā§āϞāĻŋ āĻŦāĻžāĻĻ āĻĻāĻŋāϝāĻŧā§, bun:ffi āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻĒāϰā§āĻā§āώāĻžāϰ āĻāĻžāϏā§āĻā§āϰ āĻŽā§āĻ āϏāĻŽā§āĻĒāĻžāĻĻāύā§āϰ āϏāĻŽāϝāĻŧ āĻšā§āϰāĻžāϏ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞāĨ¤ āϤāĻŋāύāĻŦāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž
āϤāĻžāĻāĻžāĻĄāĻŧāĻž, Bun 1.1.29-āĻāϰ āϰāĻŋāϞāĻŋāĻā§, C āĻā§āĻĄā§āϰ āĻāύā§āϝ N-API (napi) āϏāĻŽāϰā§āĻĨāύ āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ, āϝāĻžāϰ āĻāύā§āϝ āϧāύā§āϝāĻŦāĻžāĻĻ C-āϤ⧠āϞā§āĻāĻž āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰāϰāĻž āĻŦāϏā§āϤā§, āϏā§āĻā§āϰāĻŋāĻ, āĻ ā§āϝāĻžāϰ⧠āĻāĻŦāĻ āĻ āύā§āϝāĻžāύā§āϝ āύāύ-āĻĒā§āϰāĻŋāĻŽāĻŋāĻāĻŋāĻ āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻŽāĻžāύāĻā§āϞāĻŋ āĻĢā§āϰāϤ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āĨ¤ āϏāĻŋ āĻāĻžāώāĻžāϰ āĻ āύā§āϤāϰā§āύāĻŋāĻšāĻŋāϤ āĻĒā§āϰāĻāĻžāϰāĻā§āϞāĻŋ, āϝā§āĻŽāύ int āĻāĻŦāĻ floatāĨ¤ C āĻāĻžāώāĻžāϝāĻŧ āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰāĻĻā§āϰ āĻāϞ āĻāϰāĻžāϰ āĻĒāĻĻā§āϧāϤāĻŋāĻāĻŋ C ABI-āĻāϰ āϏāĻžāĻĨā§ āϝā§āĻā§āύ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāĻā§āϞāĻŋāĻā§ āĻāϤāĻŋāĻļā§āϞāĻāĻžāĻŦā§ āϞā§āĻĄ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧāĻ āĻāĻžāĻ āĻāϰā§, āϏā§āĻā§āϞāĻŋ āϝ⧠āĻāĻžāώāĻžāϝāĻŧ āϞā§āĻāĻž āĻšāϝāĻŧā§āĻā§ āϤāĻž āύāĻŋāϰā§āĻŦāĻŋāĻļā§āώ⧠(C++, Rust, Zig, āĻāϤā§āϝāĻžāĻĻāĻŋ), āϝāĻž āĻāĻĒāύāĻžāĻā§ JavaScript āĻā§āĻĄ āĻĨā§āĻā§ āĻāϞ āĻāϰāϤ⧠āĻĻā§āϝāĻŧāĨ¤ āĻāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻĢāĻžāĻāĻļāύ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻĒā§āύāĻāϏāĻāϝā§āĻāύ āĻĒāϰā§āϝāĻžāϝāĻŧ āĻāĻžāĻĄāĻŧāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻž āĻšāϝāĻŧ. āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻĒāύāĻŋ āĻāĻāύ JavaScript āĻĨā§āĻā§ āϏāĻŋāϏā§āĻā§āĻŽ API āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āϝ⧠āĻŦāĻžāύ āĻĒā§āϰāĻāϞā§āĻĒāĻāĻŋ Node.js-āĻāϰ āĻāύā§āϝ āϞā§āĻāĻž āϏāĻžāϰā§āĻāĻžāϰ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖāϤāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāĻžāϰ āϞāĻā§āώā§āϝ⧠āϤā§āϰāĻŋ āĻāϰāĻž āĻšāĻā§āĻā§ āĻāĻŦāĻ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ Node.js API āϏāĻŽāϰā§āĻĨāύ āĻāϰā§āĨ¤ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽāĻāĻŋāϤ⧠āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāĻŦāĻ āĻāĻžāĻāĻĒāϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āϤā§āϰāĻŋ āĻāĻŦāĻ āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āϏāϰāĻā§āĻāĻžāĻŽāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āϏā§āĻ, āϏā§āĻāϏāĻžāĻĨā§ āĻŦā§āϰāĻžāĻāĻāĻžāϰ āĻāĻžāĻĄāĻŧāĻž āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϰāĻžāύāĻāĻžāĻāĻŽ, āĻāĻāĻāĻŋ āĻĒā§āϝāĻžāĻā§āĻ āĻŽā§āϝāĻžāύā§āĻāĻžāϰ (āĻāύāĻĒāĻŋāĻāĻŽ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ), āĻĒāϰā§āĻā§āώāĻž āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āϏāϰāĻā§āĻāĻžāĻŽ āĻāĻŦāĻ āϏā§āĻŦ-āύāĻŋāϰā§āĻŽāĻžāĻŖā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻŋāϏā§āĻā§āĻŽ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āϰāϝāĻŧā§āĻā§āĨ¤ āĻĒā§āϝāĻžāĻā§āĻ āϰāϝāĻŧā§āĻā§āĨ¤ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏā§āϰ āĻĻāĻŋāĻ āĻĨā§āĻā§, āĻŦāĻžāύ Deno āĻāĻŦāĻ Node.js-āĻāϰ āĻĨā§āĻā§ āĻāϞā§āϞā§āĻāϝā§āĻā§āϝāĻāĻžāĻŦā§ āĻāĻāĻŋāϝāĻŧā§ (āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻž āĻāĻžāĻ āĻžāĻŽā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āĻĒāϰā§āĻā§āώāĻžāϝāĻŧ, āĻŦāĻžāύ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽāĻāĻŋ Deno āĻĨā§āĻā§ 2 āĻā§āĻŖ āĻĻā§āϰā§āϤ āĻāĻŦāĻ Node.js-āĻāϰ āĻā§āϝāĻŧā§ āĻĒā§āϰāĻžāϝāĻŧ 5 āĻā§āĻŖ āĻĻā§āϰā§āϤ)āĨ¤ Bun āĻāϰ āĻā§āĻĄ Zig āĻāĻŦāĻ C++ āĻ āϞā§āĻāĻž, āĻāĻŦāĻ MIT āϞāĻžāĻāϏā§āύā§āϏā§āϰ āĻ
āϧā§āύ⧠āĻŦāĻŋāϤāϰāĻŖ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ JavaScript āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ, JavaScriptCore JavaScript āĻāĻā§āĻāĻŋāύ āĻāĻŦāĻ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻĒā§āϝāĻžāĻ āϏāĻš āĻāϝāĻŧā§āĻŦāĻāĻŋāĻ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻāĻĒāĻžāĻĻāĻžāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
āĻāϤā§āϏ: opennet.ru
