Në platformën JavaScript Deno është siguruar përputhshmëria me module NPM

Ishte publikuar Deno 1.28, një platformë për ekzekutimin e veçantë të aplikacioneve në gjuhët JavaScript dhe TypeScript, e cila mund të përdoret për të krijuar handler-a që punojnë në server. Platformat zhvillohet nga Ryan Dahl, krijuesi i Node.js. Ashtu si në Node.js, Deno përdor motorin JavaScript V8, i cili gjithashtu aplikohet në shfletuesit e bazuar në Chromium. Megjithatë, Deno nuk është një degëzim i Node.js, por përfaqëson një projekt të ri të krijuar nga zero. Kodi i projektit shpërndahet nën licencën MIT. Ndërtesat janë përgatitur për Linux, Windows dhe macOS.

Projekti Deno u krijua për të ofruar një ambient më të sigurt për përdoruesit dhe për të eliminuar gabimet koncepatuale që ishin bërë në arkitekturën e Node.js. Për të rritur sigurinë, mbështjellja rreth motorit V8 është shkruar në gjuhën Rust, e cila lejon shmangien e shumë vulnerabiliteteve që lindin nga punimi në nivel të ulët me memorien. Për trajtimin e kërkesave në mënyrë jo-bllokuese përdoret platforma Tokio, gjithashtu e shkruar në gjuhën Rust. Tokio lejon krijimin e aplikacioneve me performancë të lartë bazuar në arkitekturën e ndodhi-orientuar (Event-driven), duke mbështetur shumëfishtë dhe trajtimin e kërkesave rrjet në mënyrë asinkrone.

Ndryshimi kyç në versionin e ri është stabilizimi i përputhshmërisë me paketat e vendosura në repo NPM, gjë që lejon përdorimin e më shumë se 1.3 milion moduleve të krijuara për platformën Node.js në Deno. Për shembull, tani aplikacionet bazuar në Deno mund të përdorin module të tilla për organizimin e qasjes së përhershme në të dhëna, si Prisma, Mongoose dhe MySQL, si dhe framework-e për të siguruar funksionimin e front-end-eve, si React dhe Vue. Disa module të NPM ende mbeten të papërputhshme me Deno, për shembull, për shkak të lidhjeve me elemente të veçanta të ambientit të Node.js, si skedari package.json. Gjithashtu, aktualisht nuk është e mundur të përdoret komanda 'deno compile' me module NPM. Në versionet e ardhshme, është planifikuar eliminimi i këtyre papërputhshmërive dhe kufizimeve.

MbĂ«shtetja pĂ«r modelin e mĂ«parshĂ«m tĂ« Deno tĂ« bazuar nĂ« sistemin e moduleve ECMAScript dhe Web API Ă«shtĂ« ruajtur nĂ« tĂ« njĂ«jtin nivel dhe pĂ«r importin e moduleve NPM pĂ«rdoret skema e zakonshme e ngarkesĂ«s bazuar nĂ« URL. PĂ«r t'u referuar tek modulet NPM, Ă«shtĂ« parashikuar njĂ« prefix i veçantĂ« URL-i "npm:", i cili mund tĂ« pĂ«rdoret nĂ« mĂ«nyrĂ« analogjike me modulet e zakonshme tĂ« Deno. PĂ«r shembull, pĂ«r tĂ« importuar njĂ« modul NPM, mund tĂ« specifikoni 'import { chalk } from "npm:chalk@5";', dhe pĂ«r tĂ« ekzekutuar njĂ« skript NPM nga line e komandĂ«s — "deno run —allow-env —allow-read npm:create-vite-extra".

PĂ«rdorimi i paketave NPM nĂ« Deno Ă«shtĂ« shumĂ« mĂ« i thjeshtĂ« se nĂ« Node.js, pasi nuk Ă«shtĂ« e nevojshme instalimi paraprak i moduleve (modulet instalohet nĂ« fillimin e parĂ« tĂ« aplikacionit), nuk pĂ«rdoret skedari package.json, si dhe nuk pĂ«rdoret nĂ« mĂ«nyrĂ« tĂ« paracaktuar katalogu node_modules (modulet ruhen nĂ« njĂ« katalog tĂ« pĂ«rbashkĂ«t, por ka mundĂ«si rikthimi nĂ« sjelljen e vjetĂ«r pĂ«rmes opsionit "—node-modules-dir").

NĂ« aplikacionet e bazuara nĂ« NPM ruhet mundĂ«sia e pĂ«rdorimit tĂ« mekanizmave tĂ« ofruar nĂ« Deno pĂ«r ndarjen e qasjes, izolimin dhe aktivizimin e mundĂ«sive tĂ« avancuara qĂ« ndikojnĂ« nĂ« siguri. PĂ«r tĂ« parandaluar sulmet pĂ«rmes varĂ«sive tĂ« dyshimta, Deno bllokon nĂ« mĂ«nyrĂ« tĂ« paracaktuar tĂ« gjitha pĂ«rpjekjet pĂ«r tĂ« pasur qasje nĂ« sistem nga varĂ«sitĂ« dhe nxjerr njĂ« paralajmĂ«rim pĂ«r problemet e zbuluara. PĂ«r shembull, kur moduli pĂ«rpiqet tĂ« fitojĂ« qasje pĂ«r tĂ« shkruar nĂ« /usr/bin/, do tĂ« shfaqet njĂ« kĂ«rkesĂ« pĂ«r miratim tĂ« kĂ«saj operacioni: deno run npm:install-malware ⚠ ┌ Deno kĂ«rkon qasje pĂ«r tĂ« shkruar nĂ« /usr/bin/. ├ KĂ«rkuar nga `install-malware` ├ Ekzekuto pĂ«rsĂ«ri me —allow-write pĂ«r tĂ« anashkaluar kĂ«tĂ« paralajmĂ«rim. └ Lejo? [y/n] (y = po, lejo; n = jo, moho).

Nga përmirësimet e pa lidhura në NPM, në versionin e ri përmendet përditësimi i motorit V8 në versionin 10.9, përcaktimi automatik i skedareve me bllokada, stabilizimi i API-ve Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() dhe Deno.uid(), si dhe shtimi i një API të ri të pa stabilizuar Deno.Command() për të ekzekutuar komandat (zëvendësimi universal për Deno.spawn, Deno.spawnSync dhe Deno.spawnChild).

Karakteristikat kryesore të Deno:

  • Orientimi nĂ« siguri nĂ« konfigurimin e parazgjedhur. Qasjet nĂ« skedarĂ«, mundĂ«sitĂ« rrjet dhe qasja nĂ« variablat e ambientit janĂ« tĂ« bllokuara si parazgjedhje dhe kĂ«rkojnĂ« aktivizim tĂ« qartĂ«. Aplikacionet parazgjedhur ekzekutohen nĂ« ambientet e izoluara sandbox dhe nuk mund tĂ« aksesojnĂ« mundĂ«sitĂ« sistemore pa dhĂ«nĂ« autorizime tĂ« qarta.
  • MbĂ«shtetje e ndĂ«rtuar pĂ«r gjuhĂ«n TypeScript pĂ«rveç JavaScript. PĂ«r verifikimin e tipeve dhe gjenerimin e JavaScript pĂ«rdoret kompileri standard i TypeScript, çka çon nĂ« njĂ« rĂ«nie tĂ« performancĂ«s nĂ« krahasim me analizĂ«n e JavaScript nĂ« V8.
  • Runtime ofrohet si nĂ« formĂ«n e njĂ« skedari tĂ« vetĂ«-mjaftueshĂ«m ekzekutues ("deno"). PĂ«r tĂ« ekzekutuar aplikacione me Deno, mjafton tĂ« shkarkoni njĂ« skedar ekzekutues pĂ«r platformĂ«n tuaj, i cili ka njĂ« madhĂ«si prej rreth 30 MB, pa varĂ«si tĂ« jashtme dhe pa kĂ«rkuar ndonjĂ« instalim tĂ« veçantĂ« nĂ« sistem. NĂ« tĂ« njĂ«jtĂ«n kohĂ«, deno nuk Ă«shtĂ« njĂ« aplikacion monolitik, por pĂ«rbĂ«het nga njĂ« koleksion paketash crate nĂ« Rust (deno_core, rusty_v8), tĂ« cilat mund tĂ« pĂ«rdoren veçmas;
  • NĂ« ekzekutimin e programit, si dhe pĂ«r ngarkimin e modules mund tĂ« pĂ«rdoren adresat pĂ«rmes URL. PĂ«r shembull, pĂ«r tĂ« ekzekutuar programin welcome.js mund tĂ« pĂ«rdorni komandĂ«n «deno https://deno.land/std/examples/welcome.js». Kodi nga burimet e jashtme ngarkohet dhe ruhet nĂ« sistemin lokal, por asnjĂ«herĂ« nuk pĂ«rditĂ«sohet automatikisht (pĂ«r pĂ«rditĂ«sim Ă«shtĂ« e nevojshme tĂ« nisni aplikacionin me flamurin «—reload»);
  • PĂ«rpunim efektiv i kĂ«rkesave nĂ« aplikacione pĂ«rmes HTTP, platforma Ă«shtĂ« e dizajnuar pĂ«r tĂ« krijuar aplikacione rrjetore me performancĂ« tĂ« lartĂ«;
  • MundĂ«sia pĂ«r tĂ« krijuar aplikacione web universale, tĂ« cilat mund tĂ« ekzekutohen si nĂ« Deno ashtu edhe nĂ« shfletuesin e zakonshĂ«m tĂ« web-it;
  • Prania e njĂ« grupi standard modulĂ«sh qĂ« nuk kĂ«rkon lidhje me varĂ«si tĂ« jashtme. ModulĂ«t nga koleksioni standard kanĂ« kaluar njĂ« auditim shtesĂ« dhe verifikim pĂ«r pĂ«rputhshmĂ«rinĂ«;
  • PĂ«rveç runtime-it, platforma Deno gjithashtu vepron si njĂ« menaxher paketash dhe lejon qĂ« brenda kodit tĂ« bĂ«het referencĂ« te modulĂ«t pĂ«rmes URL-ve. PĂ«r shembull, pĂ«r tĂ« ngarkuar njĂ« modul, mund tĂ« specifikohet nĂ« kod «import * as log from «https://deno.land/std/log/mod.ts». SkedarĂ«t e ngarkuar nga jashtĂ« serverĂ«sh pĂ«rmes URL-ve, ruhen nĂ« cache. Lidhet me versionet e modulĂ«ve pĂ«rmes specifikimit tĂ« numrave tĂ« versioneve brenda URL-sĂ«, pĂ«r shembull, «https://unpkg.com/liltest@0.0.5/dist/liltest.js»;
  • Sistemi i inspektimit tĂ« varĂ«sive Ă«shtĂ« i integruar (komanda «deno info») dhe njĂ« utilitet pĂ«r formatimin e kodit (deno fmt);
  • TĂ« gjitha skriptet e aplikacionit mund tĂ« kombinohen nĂ« njĂ« skedar JavaScript.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster