Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Deno Π·Π° JavaScript Π΅ осигурСна ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ NPM

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

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

ΠšΠ»ΡŽΡ‡ΠΎΠ²Π°Ρ‚Π° промяна Π² Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π΅ стабилизацията Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚Ρ‚Π° с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² рСпозитория NPM, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π² Deno Π½Π° Π½Π°Π΄ 1.3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΌΠΎΠ΄ΡƒΠ»Π°, създадСни Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Node.js. НапримСр, Π² прилоТСния Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Deno сСга ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° осигуряванС Π½Π° постоянСн Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°Ρ‚ΠΎ Prisma, Mongoose ΠΈ MySQL, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€Ρ†ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄, ΠΊΠ°Ρ‚ΠΎ React ΠΈ Vue. Някои NPM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ всС ΠΎΡ‰Π΅ остават Π½Π΅ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ с Deno, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Ρ€Π°Π΄ΠΈ ΠΏΡ€ΠΈΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚ΠΈΡ‚Π΅ си към спСцифични Π·Π° Node.js Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° срСдата, ΠΊΠ°Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Π° package.json. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ възмоТно Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€ždeno compileβ€œ с NPM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Π’ Π±ΡŠΠ΄Π΅Ρ‰ΠΈ вСрсии сС ΠΏΠ»Π°Π½ΠΈΡ€Π° отстраняванСто Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π΅ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΠΈ ΠΈ ограничСния.

ΠŸΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ°Ρ‚Π° Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ ΠΌΠΎΠ΄Π΅Π» Π² Deno, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° систСмата ECMAScript ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Web API, Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½Π° Π½Π° ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ, Π° Π·Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° NPM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ·Π½Π°Ρ‚Π°Ρ‚Π° Π½Π° Deno схСма Π½Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅, основаваща сС Π½Π° URL. Π—Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ NPM ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½ спСциалСн URL-прСфикс β€žnpm:β€œ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ Deno ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. НапримСр, Π·Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° NPM ΠΌΠΎΠ΄ΡƒΠ» ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ β€˜import { chalk } from β€žnpm:chalk@5β€œ;’, Π° Π·Π° стартиранС Π½Π° NPM скрипт ΠΎΡ‚ командния Ρ€Π΅Π΄ β€” β€ždeno run β€”allow-env β€”allow-read npm:create-vite-extraβ€œ.

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° NPM ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π² Deno Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-лСсно, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π² Node.js, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ инсталиранС Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ (ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ сС инсталират ΠΏΡ€ΠΈ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ стартиранС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ), Ρ„Π°ΠΉΠ»ΡŠΡ‚ package.json Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° дирСкторията node_modules (ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ сС ΠΊΠ΅ΡˆΠΈΡ€Π°Ρ‚ Π² ΠΎΠ±Ρ‰Π° дирСктория, Π½ΠΎ ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π²Ρ€ΡŠΡ‰Π°Π½Π΅ към старото ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ с опцията β€žβ€”node-modules-dirβ€œ).

Π’ прилоТСнията, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° NPM, остава Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈΡ‚Π΅ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ°, изолация ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ със сигурността, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π½ΠΈ ΠΎΡ‚ Deno. Π—Π° Π΄Π° сС противопостави Π½Π° Π°Ρ‚Π°ΠΊΠΈ Ρ‡Ρ€Π΅Π· ΡΡŠΠΌΠ½ΠΈΡ‚Π΅Π»Π½ΠΈ зависимости, Deno ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€Π° всички ΠΎΠΏΠΈΡ‚ΠΈ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ систСмата ΠΎΡ‚ зависимости ΠΈ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. НапримСр, ΠΏΡ€ΠΈ ΠΎΠΏΠΈΡ‚ Π½Π° ΠΌΠΎΠ΄ΡƒΠ» Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π·Π° запис Π² /usr/bin/ Ρ‰Π΅ бъдС ΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ исканС Π·Π° ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π° опСрацията: deno run npm:install-malware ⚠️ β”Œ Deno иска Π΄ΠΎΡΡ‚ΡŠΠΏ Π·Π° запис Π² /usr/bin/. β”œ Изискано ΠΎΡ‚ `install-malware` β”œ Π˜Π·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ с β€”allow-write, Π·Π° Π΄Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π° исканС. β”” Позволи? [y/n] (y = Π΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ; n = Π½Π΅, ΠΎΡ‚ΠΊΠ°ΠΆΠΈ) >

ΠžΡ‚ Π½Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ Π² NPM подобрСния Π² Π½ΠΎΠ²Π°Ρ‚Π° вСрсия сС спомСнава актуализация Π½Π° двигатСля V8 Π΄ΠΎ вСрсия 10.9, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ опрСдСлянС Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½ΠΈΡ, стабилизиранС Π½Π° API Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() ΠΈ Deno.uid(), добавянС Π½Π° Π½ΠΎΠ² нСстабилСн API Deno.Command() Π·Π° стартиранС Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ (унивСрсална замяна Π½Π° Deno.spawn, Deno.spawnSync ΠΈ Deno.spawnChild).

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

  • ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π΅ към сигурност Π² конфигурацията ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. Π”ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° срСдата Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ ΠΈ изисква явно Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ сС стартират Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ sandbox срСди ΠΈ нямат Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ систСмни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· прСдоставянС Π½Π° явни Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ;
  • Π’Π³Ρ€Π°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° TypeScript Π² допълнСниС към JavaScript. Π—Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° JavaScript сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° вградСният ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ TypeScript, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΠΎΠ½ΠΈΠΆΠ°Π²Π°Π½Π΅ Π½Π° производитСлността Π² сравнСниС с парсинга Π½Π° JavaScript Π² V8;
  • Runtime сС прСдоставя ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° самостоятСлСн изпълним Ρ„Π°ΠΉΠ» (β€ždenoβ€œ). Π—Π° Π΄Π° стартиратС прилоТСния с Deno, Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ Π΅Π΄ΠΈΠ½ изпълним Ρ„Π°ΠΉΠ» Π·Π° Π²Π°ΡˆΠ°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, с Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠΎΠ»ΠΎ 30 ΠœΠ‘, Π±Π΅Π· външни зависимости ΠΈ Π±Π΅Π· спСциална инсталация Π² систСмата. ОсвСн Ρ‚ΠΎΠ²Π°, 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 Ρ„Π°ΠΉΠ».

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

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