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

Pas pas dy vite zhvillimi është paraqitur dalësi i parë i rëndësishëm Deno 1.0, një platformë për ekzekutimin e izoluar të aplikacioneve në gjuhët JavaScript dhe TypeScript, e cila mund të përdoret për të krijuar trajtues që funksionojnë në server. Platforma po zhvillohet nga Ryan Dahl (Ryan Dahl), krijuesi i Node.js. Ashtu si në Node.js, Deno përdor motorin JavaScript V8, i cili gjithashtu aplikohet në shfletues të bazuar në Chromium. Ndërkohë, Deno nuk është një degëzim i Node.js, por përfaqëson një projekt të ri të krijuar nga e para. Kodi i projektit distribuohet 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 nĂ« hapĂ«sirĂ«n emĂ«rore Deno, e cila pĂ«rgjigjet pĂ«r ndĂ«rveprimin e aplikacioneve me OS. NdĂ«rfaqet qĂ« pĂ«r momentin nuk janĂ« stabilizuar, pĂ«r default janĂ« tĂ« fshehura dhe janĂ« tĂ« disponueshme vetĂ«m kur ekzekutohen nĂ« modin «—unstable». Me kalimin e formimit tĂ« versioneve tĂ« reja, API tĂ« tillĂ« gradualisht do tĂ« transferohen nĂ« kategorinĂ« e stabilizuar. API nĂ« hapĂ«sirĂ«n globale, qĂ« pĂ«rfshin funksione tĂ« zakonshme si setTimeout() dhe fetch(), janĂ« sa mĂ« afĂ«r API tĂ« shfletuesve tĂ« zakonshĂ«m dhe zhvillohen nĂ« pĂ«rputhje me standardet Web pĂ«r shfletuesit. API tĂ« ofruara nga Rust, tĂ« cilat pĂ«rdoren drejtpĂ«rdrejt nĂ« kodin e platformĂ«s, si dhe ndĂ«rfaqja pĂ«r zhvillimin e plginĂ«ve pĂ«r Deno runtime, pĂ«r momentin nuk janĂ« stabilizuar dhe vazhdojnĂ« tĂ« zhvillohen.

Motivacionet kryesore për krijimin e një 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ë ambient më të sigurt. Për të rritur sigurinë, mbështjellja për motorin V8 është shkruar në gjuhën Rust, e cila shmang shumë dobësi që ndodhin për shkak të punës mememori të nivelit të ulët, siç janë akseset në fusha memorie pas lirimit të saj, dereferencimi i treguesve null dhe dalja jashtë kufijve të tamponit. Për procesimin 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ë mbi një arkitekturë të orientuar nga ngjarjet (Event-driven), që mbështesin shumë-threading dhe përpunimin e kërkesave rrjeti në mënyrë asinkrone.

Ndryshimet kryesore karakteristika Deno:

  • Orientimi pĂ«r sigurinĂ« nĂ« konfigurimin e parazgjedhur. Qasjet nĂ« skedarĂ«, mundĂ«sitĂ« rrjet dhe qasja nĂ« variablat mjedisit tĂ« parazgjedhur janĂ« bllokuar dhe kĂ«rkojnĂ« aktivizim tĂ« qartĂ«. Aplikacionet e parazgjedhura startojnĂ« nĂ« ambientet e izoluara sandbox dhe nuk mund tĂ« aksesojnĂ« mundĂ«sitĂ« sistemore pa u dhĂ«nĂ« autorizime tĂ« qarta;
  • MbĂ«shtetje e integruar pĂ«r gjuhĂ«n TypeScript pĂ«rveç JavaScript. PĂ«r verifikimin e tipeve dhe gjenerimin e JavaScript pĂ«rdoret kompiler i brendshĂ«m i TypeScript, qĂ« çon nĂ« njĂ« rĂ«nien e performancĂ«s krahasuar me analizimin e JavaScript nga V8. NĂ« tĂ« ardhmen planifikohet tĂ« pĂ«rgatitet njĂ« implementim i vetĂ« sistemit tĂ« verifikimit tĂ« tipeve tĂ« TypeScript, i cili do tĂ« lejojĂ« njĂ« rritje tĂ« konsiderueshme nĂ« performancĂ«n e pĂ«rpunimit tĂ« TypeScript;
  • Runtime vjen 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 e tij, njĂ« skedar ekzekutiv, me njĂ« madhĂ«si rreth 20 MB, pa varĂ«si tĂ« jashtme dhe pa kĂ«rkuar ndonjĂ« instalim tĂ« veçantĂ« nĂ« sistem. MegjithatĂ«, deno nuk Ă«shtĂ« njĂ« aplikacion monolit, por pĂ«rbĂ«het nga njĂ« koleksion paketash crate nĂ« Rust (deno_core, rusty_v8), tĂ« cilat mund tĂ« pĂ«rdoren veçmas;
  • Kur stradhet programi, si dhe pĂ«r ngarkimin e moduleve, mund tĂ« pĂ«rdoren adresat pĂ«rmes URL. PĂ«r shembull, pĂ«r tĂ« nisur programin welcome.js mund tĂ« pĂ«rdoret komanda «deno https://deno.land/std/examples/welcome.js». Kodi nga burime tĂ« jashtme ngarkohet dhe ruhet nĂ« sistemin lokal, por nuk pĂ«rditĂ«sohet automatikisht (pĂ«r pĂ«rditĂ«simin e kĂ«rkohet tĂ« fillohet aplikacioni me flagun «—reload»);
  • PĂ«rpunimi efektiv i kĂ«rkesave rrjet nĂ« aplikacione pĂ«rmes HTTP, platforma Ă«shtĂ« e dizajnuar pĂ«r krijimin e aplikacioneve 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;
  • Prania seti standard i moduleve, pĂ«rdorimi i tĂ« cilave nuk kĂ«rkon lidhje me varĂ«si tĂ« jashtme. Modul tĂ« koleksionit standard kanĂ« kaluar audite dhe verifikime tĂ« shtesĂ« pĂ«r compatibilitet;
  • PĂ«rveç runtime, platforma Deno gjithashtu funksionon si menaxher paketash dhe lejon qĂ« brenda kodit tĂ« referohesh modulĂ«ve pĂ«rmes URL. PĂ«r shembull, pĂ«r tĂ« ngarkuar njĂ« modul, mund tĂ« specifikoni 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 ruhen nĂ« cache. Kapitulli i versioneve tĂ« moduleve pĂ«rcaktohet pĂ«rmes numrave tĂ« versioneve tĂ« specifikuar brenda URL, pĂ«r shembull, «https://unpkg.com/liltest@0.0.5/dist/liltest.js»;
  • PjesĂ« e integruar e sistemit tĂ« inspektimit tĂ« varĂ«sive (komanda «deno info») dhe utilitarit pĂ«r formatimin e kodit (deno fmt);
  • TĂ« gjitha skenarĂ«t e aplikacionit mund tĂ« bashkohen nĂ« njĂ« skedar JavaScript.

Dallimet nga Node.js:

  • Deno nuk pĂ«rdor menaxherin e paketave npm
    dhe nuk lidhët me repozitorë, adresimi i moduleve bëhet përmes URL ose rrugës së skedarit, dhe modulet mund të vendosen në çdo site;
  • NĂ« Deno nuk pĂ«rdoret «package.json» pĂ«r tĂ« pĂ«rcaktuar modulet;
  • Dallimi i API-ve, tĂ« gjitha veprimet asinkrone nĂ« Deno kthejnĂ« promise;
  • Deno kĂ«rkon pĂ«rcaktimin e qartĂ« tĂ« tĂ« gjitha lejimeve tĂ« nevojshme pĂ«r skedarĂ«t, rrjetin dhe variablat e mjedisit;
  • TĂ« gjitha gabimet pa trajtues shkaktojnĂ« ndalimin e ekzekutimit tĂ« aplikacionit;
  • NĂ« Deno aplikohet sistemi i moduleve ECMAScript dhe nuk mbĂ«shtetet require();
  • Serveri HTTP i integruar i Deno Ă«shtĂ« shkruar nĂ« TypeScript dhe funksionon mbi TCP-soket natyrore, 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 e tyre nĂ« optimizimin e tĂ« gjithĂ« shtresĂ«s sĂ« TCP-soket dhe ofrimin e njĂ« ndĂ«rfaqeje mĂ« tĂ« pĂ«rgjithshme. Serveri HTTP i Deno ofron njĂ« bandĂ« mĂ« tĂ« vogĂ«l, por garanton vonesa tĂ« parashikueshme tĂ« ulĂ«ta. PĂ«r shembull, nĂ« test, njĂ« aplikacion i thjeshtĂ« i bazuar nĂ« serverin HTTP tĂ« Deno mundi tĂ« pĂ«rpunonte 25,000 kĂ«rkesa nĂ« sekondĂ« me njĂ« vonesĂ« maksimale prej 1.3 milisekondash. NĂ« Node.js, aplikacioni analog pĂ«rpunoi 34,000 kĂ«rkesa nĂ« sekondĂ«, por vonesat variuan nga 2 nĂ« 300 milisekonda.
  • Deno nuk Ă«shtĂ« nĂ« pĂ«rputhshmĂ«ri me pako pĂ«r Node.js (NPM), por po zhvillohet ndaras ndĂ«rfaqe pĂ«r pĂ«rputhshmĂ«ri me bibliotekĂ«n standarde tĂ« Node.js, ndĂ«rsa nĂ« zhvillimin e saj, nĂ« Deno do tĂ« mund tĂ« ekzekutohen gjithnjĂ« e mĂ« shumĂ« aplikacione tĂ« shkruara pĂ«r Node.js.
  • Burimi: opennet.ru

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