Π‘ΡŠΠ·Π΄Π°Ρ‚Π΅Π»ΡΡ‚ Π½Π° Node.js прСдстави Π·Π°Ρ‰ΠΈΡ‚Π΅Π½Π° JavaScript ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Deno 1.0

Π‘Π»Π΅Π΄ Π΄Π²ΡƒΠ³ΠΎΠ΄ΠΈΡˆΠ½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прСдставСн ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Deno 1.0, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΎ изпълнСниС Π½Π° прилоТСния Π½Π° JavaScript ΠΈ TypeScript, която ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° създаванС Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΎΡ‚ Π Π°ΠΉΠ°Π½ Π”Π°Π» (Ryan Dahl), ΡΡŠΠ·Π΄Π°Ρ‚Π΅Π»ΡΡ‚ Π½Π° Node.js. ΠšΠ°ΠΊΡ‚ΠΎ Π² Node.js, Π² Deno сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° JavaScript-Π΄Π²ΠΈΠΆΠΎΠΊ V8, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° сС ΠΏΡ€ΠΈΠ»Π°Π³Π° Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° Chromium. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Deno Π½Π΅ Π΅ ΠΊΠ»ΠΎΠ½ Π½Π° Node.js, Π° прСдставлява напълно Π½ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, създадСн ΠΎΡ‚ Π½ΡƒΠ»Π°Ρ‚Π°. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° разпространява Π΅ с Π»ΠΈΡ†Π΅Π½Π· MIT. Π‘Π±ΠΎΡ€ΠΊΠΈΡ‚Π΅ са ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π·Π° Linux, Windows ΠΈ macOS.

Π‘ΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΎΡ‚ΠΎ число Π½Π° вСрсията Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ с стабилизацията Π½Π° API Π² пространството Π½Π° ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Deno, ΠΊΠΎΠΈΡ‚ΠΎ отговарят Π·Π° взаимодСйствиСто Π½Π° прилоТСнията с ОБ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΈΡ‚Π΅ интСрфСйси, ΠΊΠΎΠΈΡ‚ΠΎ всС ΠΎΡ‰Π΅ Π½Π΅ са стабилизирани, ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ са скрити ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ само ΠΏΡ€ΠΈ стартиранС Π² Ρ€Π΅ΠΆΠΈΠΌ β€žβ€”unstableβ€œ. Π‘ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ вСрсии Ρ‚Π°ΠΊΠΈΠ²Π° API постСпСнно Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ прСмСстСни Π² катСгорията Π½Π° стабилнитС. API Π² Π³Π»ΠΎΠ±Π°Π»Π½ΠΎΡ‚ΠΎ пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰ΠΎ ΠΎΠ±Ρ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ setTimeout() ΠΈ fetch(), ΠΏΠΎ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΅ Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ API Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ ΡƒΠ΅Π± Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ ΠΈ сС Ρ€Π°Π·Π²ΠΈΠ²Π° Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с ΡƒΠ΅Π± стандартитС Π·Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π΅Π½ΠΈΡ‚Π΅ Rust API, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² ΠΊΠΎΠ΄Π° Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡŠΡ‚ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° плъгини Π·Π° Deno runtime, засСга Π½Π΅ са стабилизирани ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ‚ Π΄Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚.

ΠšΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠΎΡ‚ΠΈΠ²ΠΈ Π·Π° ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° JavaScript ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° бяха ΠΆΠ΅Π»Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° сС отстранят ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»Π½ΠΈΡ‚Π΅ Π³Ρ€Π΅ΡˆΠΊΠΈ, допуснати Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Node.js, ΠΈ Π΄Π° сС прСдостави Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ ΠΏΠΎ-Π·Π°Ρ‰ΠΈΡ‚Π΅Π½Π° срСда. Π—Π° повишаванС Π½Π° сигурността ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°Ρ‚Π° ΠΎΠΊΠΎΠ»ΠΎ V8 Π΄Π²ΠΈΠΆΠΊΠ° Π΅ написана Π½Π° Rust, ΠΊΠΎΠΉΡ‚ΠΎ позволява избягванСто Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ уязвимости, ΠΏΡ€ΠΎΠΈΠ·Ρ‚ΠΈΡ‡Π°Ρ‰ΠΈ ΠΎΡ‚ ниско Π½ΠΈΠ²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ освобоТдавана ΠΏΠ°ΠΌΠ΅Ρ‚, Ρ€Π°Π·ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π΅ Π½Π° Π½ΡƒΠ»Π΅Π²ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ извън Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π°. Π—Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° заявки Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ Ρ€Π΅ΠΆΠΈΠΌ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Tokio, ΡΡŠΡ‰ΠΎ написана Π½Π° Rust. Tokio позволява ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° високопроизводитСлни прилоТСния, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΠΉΠ½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° (Event-driven), ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ многопоточност ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ заявки Π² асинхронСн Ρ€Π΅ΠΆΠΈΠΌ.

Основни характСристики Deno:

  • ΠžΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ Π·Π° сигурност Π² конфигурацията ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΡΡ‚Π° към Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΎΡ‚ срСда ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ са Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ΠΈ ΠΈ изискват явно Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ сС стартират Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ срСда Π·Π° тСстванС ΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ систСмни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· прСдоставянС Π½Π° явни ΠΏΡ€Π°Π²Π°;
  • Π’Π³Ρ€Π°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° TypeScript, освСн JavaScript. Π—Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° JavaScript сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²Π³Ρ€Π°Π΄Π΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ TypeScript, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ спад Π² производитСлността Π² сравнСниС с Ρ€Π°Π·Π±ΠΎΡ€ Π½Π° JavaScript Π² V8. Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ сС ΠΏΠ»Π°Π½ΠΈΡ€Π° ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° собствСна рСализация Π½Π° систСмата Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ TypeScript, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ повишаванС Π½Π° производитСлността ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° TypeScript;
  • Runtime сС прСдоставя ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π΅Π΄ΠΈΠ½ ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½ изпълним Ρ„Π°ΠΉΠ» ("deno"). Π—Π° стартиранС Π½Π° прилоТСния с Deno Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° сС ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈ Π·Π° своята ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π΅Π΄ΠΈΠ½ изполняСм Ρ„Π°ΠΉΠ», с Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠΎΠ»ΠΎ 20 Мб, ΠΊΠΎΠΉΡ‚ΠΎ няма външни зависимости ΠΈ Π½Π΅ изисква спСциална инсталация Π² систСмата. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Deno Π½Π΅ Π΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° прСдставлява колСкция ΠΎΡ‚ crate-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π½Π° Rust (deno_core, rusty_v8), ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ;
  • ΠŸΡ€ΠΈ стартиранС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° адрСсиранС Ρ‡Ρ€Π΅Π· URL. НапримСр, Π·Π° стартиранС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° welcome.js ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° "deno https://deno.land/std/examples/welcome.js". ΠšΠΎΠ΄ΡŠΡ‚ ΠΎΡ‚ външни рСсурси сС Π·Π°Ρ€Π΅ΠΆΠ΄Π° ΠΈ ΠΊΠ΅ΡˆΠΈΡ€Π° Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° систСма, Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ сС обновява Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ (Π·Π° обновяванС Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ явно Π΄Π° сС стартира ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ с Ρ„Π»Π°Π³Π° "β€”reload");
  • Π•Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° HTTP ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ заявки, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π° Π·Π° създаванС Π½Π° високопроизводитСлни ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ прилоТСния;
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° създаванС Π½Π° унивСрсални ΡƒΠ΅Π±-прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΊΠ°ΠΊΡ‚ΠΎ Π² Deno, Ρ‚Π°ΠΊΠ° ΠΈ Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡƒΠ΅Π± Π±Ρ€Π°ΡƒΠ·ΡŠΡ€;
  • НаличиСто Π½Π° стандартСн Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ изисква ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с външни зависимости. ΠœΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ ΠΎΡ‚ стандартната колСкция са ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π»ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ ΠΎΠ΄ΠΈΡ‚ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚;
  • ОсвСн runtime, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Deno ΡΡŠΡ‰ΠΎ ΠΈΠ³Ρ€Π°Π΅ ролята Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ ΠΈ позволява Π² ΠΊΠΎΠ΄Π° Π΄Π° сС ΠΎΠ±Ρ€Π°Ρ‰Π° към ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΠΎ URL. НапримСр, Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ» ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΡƒΠΊΠ°ΠΆΠ΅ Π² ΠΊΠΎΠ΄Π° "import * as log from "https://deno.land/std/log/mod.ts". Π€Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅, Π·Π°Ρ€Π΅Π΄Π΅Π½ΠΈ ΠΎΡ‚ външни ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΏΠΎ URL, сС ΠΊΠ΅ΡˆΠΈΡ€Π°Ρ‚. ВСрсиитС Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ сС опрСдСлят Ρ‡Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° вСрсиитС Π² URL, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ "https://unpkg.com/liltest@0.0.5/dist/liltest.js";
  • Π’Π³Ρ€Π°Π΄Π΅Π½Π°Ρ‚Π° систСма Π·Π° инспСктиранС Π½Π° зависимости (ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«deno infoΒ») ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ (deno fmt) са ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ΠΈ.
  • Всички скриптовС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈ Π² Π΅Π΄ΠΈΠ½ JavaScript Ρ„Π°ΠΉΠ».

Π Π°Π·Π»ΠΈΠΊΠΈ ΠΎΡ‚ Node.js:

  • Deno Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ npm
    ΠΈ Π½Π΅ сС ΠΏΡ€ΠΈΠ²ΡŠΡ€Π·Π²Π° към Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, адрСсацията Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ става Ρ‡Ρ€Π΅Π· URL ΠΈΠ»ΠΈ ΠΏΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡŠΡ‚, Π° самитС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Ρ‚ Π½Π° всСки сайт;
  • Π’ Deno Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Β«package.jsonΒ» Π·Π° опрСдСлянС Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅;
  • Π Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² API, всички асинхронни дСйствия Π² Deno Π²Ρ€ΡŠΡ‰Π°Ρ‚ promise;
  • Deno изисква ясно опрСдСлянС Π½Π° всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΌΡ€Π΅ΠΆΠ° ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° срСдата;
  • Всички Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ нямат ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, водят Π΄ΠΎ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ;
  • Π’ Deno сС ΠΏΡ€ΠΈΠ»Π°Π³Π° систСма ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ECMAScript ΠΈ Π½Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° require();
  • Π’Π³Ρ€Π°Π΄Π΅Π½ΠΎΡ‚ΠΎ HTTP-ΡΡŠΡ€Π²ΡŠΡ€ Π½Π° Deno Π΅ написано Π½Π° TypeScript ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΡŠΡ€Ρ…Ρƒ Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ TCP-сокСти, Π° HTTP-ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π° Node.js Π΅ написан Π½Π° C ΠΈ прСдоставя ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ Π·Π° JavaScript. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Deno са насочили усилията си към ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° цСлия слой TCP-сокСти ΠΈ осигуряванС Π½Π° ΠΏΠΎ-ΠΎΠ±Ρ‰ интСрфСйс. HTTP-ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π° Deno осигурява ΠΏΠΎ-нисък ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚, Π½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° прСдсказуСмо ниски забавяния. НапримСр, Π² тСст ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° Deno HTTP ΡΡŠΡ€Π²ΡŠΡ€, успя Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ 25 хиляди заявки Π² сСкунда с максимално забавянС ΠΎΡ‚ 1.3 милисСкунди. Π’ Node.js Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ 34 хиляди заявки Π² сСкунда, Π½ΠΎ забавянията Π²Π°Ρ€ΠΈΡ€Π°Ρ…Π° ΠΌΠ΅ΠΆΠ΄Ρƒ 2 ΠΈ 300 милисСкунди.
  • Deno Π½Π΅ Π΅ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° Node.js (NPM), Π½ΠΎ сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ слой Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ със стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Node.js, ΠΏΠΎ мярка Π½Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° която Π² Deno Ρ‰Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС стартират всС ΠΏΠΎΠ²Π΅Ρ‡Π΅ прилоТСния, написани Π·Π° Node.js.
  • Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster