Autori i Node.js prezantoi platformën e sigurt JavaScript Deno 1.0

Pas dy vjet zhvillimi u paraqit lëshimi i parë i rëndësishëm Deno 1.0, një platformë për ekzekutimin e aplikacioneve të veçanta në gjuhët JavaScript dhe TypeScript, e cila mund të përdoret për të krijuar përpunues, që funksionojnë në server. Platforma zhvillohet nga Ryan Dahl (Ryan Dahl), krijuesi i Node.js. Ashtu si në Node.js, Deno përdor motorin JavaScript V8, i cili përdoret gjithashtu në shfletuesit e bazuar në Chromium. Megjithatë, Deno nuk është një degë e Node.js, por përfaqëson një projekt të ri të ndërtuar nga e para. Kodi i projektit shpërndahet nën licencën MIT. Ndërtesat janë përgatitur për Linux, Windows dhe macOS.

Numri i rĂ«ndĂ«sishĂ«m i versionit lidhet me stabilizimin e API-sĂ« nĂ« hapĂ«sirĂ«n emĂ«rtuese Deno, e cila Ă«shtĂ« pĂ«rgjegjĂ«se pĂ«r ndĂ«rveprimin e aplikacioneve me OS. NdĂ«rfaqet e softuerit, tĂ« cilat akoma nuk janĂ« stabilizuar, nĂ« mĂ«nyrĂ« default janĂ« tĂ« fshehura dhe janĂ« tĂ« disponueshme vetĂ«m kur ekzekutohet nĂ« modalitetin "—unstable". NdĂ«rsa formohen versione tĂ« reja, API tĂ« tillĂ« gradualisht do tĂ« kalojnĂ« nĂ« kategorinĂ« e stabilizuar. API nĂ« hapĂ«sirĂ«n globale emĂ«rtuese, duke pĂ«rfshirĂ« funksione tĂ« zakonshme si setTimeout() dhe fetch(), Ă«shtĂ« sa mĂ« afĂ«r mundĂ«sive tĂ« API tĂ« shfletuesve normalĂ« dhe zhvillohet nĂ« pĂ«rputhje me standardet Web pĂ«r shfletuesit. API-tĂ« e ofruara nga Rust, tĂ« cilat pĂ«rdoren direkt nĂ« kodin e platformĂ«s, si dhe ndĂ«rfaqja pĂ«r zhvillimin e pluginĂ«ve pĂ«r Deno runtime, akoma nuk janĂ« stabilizuar dhe vazhdojnĂ« tĂ« zhvillohen.

Motivacionet kryesore për krijimin e kësaj platforme të re JavaScript ishin dëshira për të eliminuar gabimet konceptuale, të bëra në arkitekturën e Node.js, dhe për të ofruar përdoruesve një mjedis më të sigurt. Për të rritur sigurinë, mbulesa për motorin V8 është shkruar në gjuhën Rust, e cila lejon shmangien e shumë vulnerabiliteteve që ndodhin për shkak të punës me kujtesën në nivel të ulët, si për shembull, qasja në një zonë kujtese pas çlirimit të saj, dereferencimi i treguesve null dhe shkelja e kufijve të buffers. Për trajtimin e kërkesave në modalitetin jo-bllokues përdoret platforma Tokio, gjithashtu e shkruar në gjuhën Rust. Tokio lejon krijimin e aplikacioneve me performancë të lartë të bazuara në arkitekturën e orientuar nga ngjarjet (Event-driven), duke mbështetur shumëprocësorin dhe trajtimin e kërkesave të rrjetit në mënyrë asinkrone.

Main e veçanta 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 integruar pĂ«r gjuhĂ«n TypeScript pĂ«rveç JavaScript. PĂ«r verifikimin e llojeve dhe gjenerimin e JavaScript pĂ«rdoret kompilator standard i TypeScript, gjĂ« qĂ« çon nĂ« njĂ« rĂ«nie tĂ« performancĂ«s nĂ« krahasim me analizĂ«n e JavaScript nĂ« V8. NĂ« tĂ« ardhmen, Ă«shtĂ« planifikuar pĂ«rgatitja e njĂ« implementimi tĂ« vetin tĂ« sistemit tĂ« verifikimit tĂ« llojeve tĂ« TypeScript, i cili do tĂ« lejojĂ« njĂ« rritje tĂ« rĂ«ndĂ«sishme tĂ« performancĂ«s sĂ« trajtimit tĂ« TypeScript;
  • Runtime ofrohet nĂ« formĂ«n e njĂ« skedari ekzekutiv tĂ« pavarur («deno»). PĂ«r tĂ« ekzekutuar aplikacione duke pĂ«rdorur Deno, mjafton shkarkohet pĂ«r platformĂ«n tuaj, njĂ« skedar ekzekutiv, me njĂ« madhĂ«si prej rreth 20 MB, pa varĂ«si tĂ« jashtme dhe qĂ« nuk kĂ«rkon ndonjĂ« instalim tĂ« veçantĂ« nĂ« sistem. NjĂ«kohĂ«sisht, Deno nuk Ă«shtĂ« njĂ« aplikacion monolit, por pĂ«rbĂ«n njĂ« koleksion paketash crate nĂ« Rust (deno_core, rusty_v8), tĂ« cilat mund tĂ« pĂ«rdoren ndaras;
  • 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 grupi standard i moduleve, pĂ«rdorimi i tĂ« cilave nuk kĂ«rkon lidhej me varĂ«si tĂ« jashtme. ModulĂ«t e koleksionit standard kanĂ« kaluar njĂ« audit tĂ« mĂ«tejshĂ«m dhe verifikim pĂ«r pĂ«rputhshmĂ«ri;
  • PĂ«rveç runtime-it, platforma Deno gjithashtu shĂ«rben si menaxher paketash dhe lejon qasjen nĂ« module pĂ«rmes URL. 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 serverĂ« tĂ« jashtĂ«m pĂ«rmes URL ruhet nĂ« cache. Lidhjet me versionet e moduleve pĂ«rcaktohen pĂ«rmes numrave tĂ« versioneve brenda URL, 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.

Dallimet nga Node.js:

  • Deno nuk pĂ«rdor menaxherin e pakove npm
    dhe nuk lidhet me depozitat, adresimi i moduleve bëhet përmes URL-së ose me rrugë skedari, ndërsa modulet mund të vendosen në çdo faqe;
  • NĂ« Deno nuk pĂ«rdoret "package.json" pĂ«r tĂ« pĂ«rcaktuar modulet;
  • Dallimi nĂ« API, tĂ« gjitha veprimet asinkrone nĂ« Deno kthejnĂ« promise;
  • Deno kĂ«rkon qĂ« tĂ« gjithĂ« mirĂ«qeniet e nevojshme pĂ«r skedarĂ«t, rrjetet dhe variablat e mjedisit tĂ« pĂ«rcaktohen nĂ« mĂ«nyrĂ« eksplicite;
  • TĂ« gjithĂ« gabimet qĂ« nuk kanĂ« trajtues tĂ« caktuar çojnĂ« nĂ« pĂ«rfundimin e ekzekutimit tĂ« aplikacionit;
  • NĂ« Deno aplikohet sistemi i moduleve ECMAScript dhe nuk mbĂ«shtetet require();
  • Serveri HTTP i integruar nĂ« Deno Ă«shtĂ« shkruar nĂ« TypeScript dhe funksionon mbi soket TCP natyralĂ«, ndĂ«rsa serveri HTTP i Node.js Ă«shtĂ« shkruar nĂ« C dhe ofron lidhje pĂ«r JavaScript. Zhvilluesit e Deno kanĂ« pĂ«rqendruar pĂ«rpjekjet nĂ« optimizimin e gjithĂ« shtresĂ«s sĂ« soketeve TCP dhe ofrimin e njĂ« ndĂ«rfaqe mĂ« tĂ« gjerĂ«. Serveri HTTP i Deno siguron njĂ« kapacitet mĂ« tĂ« ulĂ«t, por garanton vonesa tĂ« parashikueshme dhe tĂ« ulĂ«ta. PĂ«r shembull, nĂ« njĂ« test, njĂ« aplikacion i thjeshtĂ« bazuar nĂ« serverin HTTP tĂ« Deno arriti tĂ« trajtojĂ« 25 mijĂ« kĂ«rkesa nĂ« sekondĂ« me njĂ« vonesĂ« maksimale prej 1.3 milisekondash. NĂ« Node.js, njĂ« aplikacion i ngjashĂ«m trajtoi 34 mijĂ« kĂ«rkesa nĂ« sekondĂ«, por vonesat variuan nga 2 deri nĂ« 300 milisekonda.
  • Deno nuk Ă«shtĂ« i pĂ«rputhshĂ«m me paketat pĂ«r Node.js (NPM), por zhvillohet veçmas shtresa pĂ«r pĂ«rputhshmĂ«ri me bibliotekĂ«n standarde tĂ« Node.js, ndĂ«rsa zhvillohet me tĂ« cilin nĂ« Deno do tĂ« mund tĂ« ekzekutohen gjithnjĂ« e mĂ« shumĂ« aplikacione tĂ« shkruara pĂ«r Node.js.
  • 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