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

Pas dy vitesh zhvillim prezantuar lëshimi i parë i madh Më jep 1.0, një platformë për ekzekutimin e pavarur të aplikacioneve në JavaScript dhe TypeScript, e cila mund të përdoret për të krijuar mbajtës që funksionojnë në server. Platforma është zhvilluar nga Ryan Dahl (Ryan Dahl), krijuesi i Node.js. Ashtu si Node.js, Deno përdor një motor JavaScript V8, i cili përdoret gjithashtu në shfletuesit e bazuar në Chromium. Në të njëjtën kohë, Deno nuk është një fork i Node.js, por është një projekt i ri i krijuar nga e para. Kodi i projektit shperndare nga me licencë MIT. Asambletë përgatitur për Linux, Windows dhe macOS.

Numri i rëndësishëm i versionit shoqërohet me stabilizimin e API-ve në hapësirën e emrave Deno, të cilat janë përgjegjëse për ndërveprimin e aplikacioneve me OS. Ndërfaqet softuerike që kanë deri tani i pa stabilizuar, janë të fshehura si parazgjedhje dhe disponohen vetëm kur funksionojnë në modalitetin "--të paqëndrueshme". Me formimin e versioneve të reja, API të tilla gradualisht do të bëhen të qëndrueshme. API në hapësirën globale të emrave, i cili përfshin funksione të zakonshme si setTimeout() dhe fetch(), është sa më afër API-së së shfletuesve të zakonshëm të internetit dhe është zhvilluar në përputhje me standardet e Uebit për shfletues. API-të e ofruara nga Rust, të cilat përdoren drejtpërdrejt në kodin e platformës, si dhe ndërfaqja për zhvillimin e shtojcave për kohën e funksionimit Deno, nuk janë stabilizuar ende dhe vazhdojnë të zhvillohen.

Motivet kryesore për krijimin e një platforme të re JavaScript ishin dëshira për të eliminuar gabimet konceptuale, pranuar në arkitekturën Node.js dhe u ofroni përdoruesve një mjedis më të sigurt. Për të përmirësuar sigurinë, motori V8 është shkruar në Rust, i cili shmang shumë nga dobësitë që lindin nga manipulimi i memories në nivel të ulët, të tilla si aksesi pa pagesë, çreferencat e treguesit null dhe tejkalimet e buferit. Platforma përdoret për të përpunuar kërkesat në modalitetin jo-bllokues Tokyo, shkruar edhe në Rust. Tokio ju lejon të krijoni aplikacione me performancë të lartë bazuar në arkitekturën e drejtuar nga ngjarjet, duke mbështetur kërkesat e rrjetit me shumë fije dhe përpunim në modalitetin asinkron.

Kryesore karakteristikat Deno:

  • Konfigurimi i paracaktuar i orientuar nga siguria. Qasja në skedar, rrjetëzimi dhe qasja në variablat e mjedisit janë çaktivizuar si parazgjedhje dhe duhet të aktivizohen në mënyrë eksplicite. Aplikacionet si parazgjedhje ekzekutohen në mjedise të izoluara sandbox dhe nuk mund të qasen në aftësitë e sistemit pa dhënë leje të qarta;
  • Mbështetje e integruar për TypeScript përtej JavaScript. Përpiluesi standard TypeScript përdoret për të kontrolluar llojet dhe për të gjeneruar JavaScript, gjë që çon në një sukses të performancës në krahasim me analizimin e JavaScript në V8. Në të ardhmen, ne planifikojmë të përgatisim zbatimin tonë të sistemit të kontrollit të tipit TypeScript, i cili do të përmirësojë performancën e përpunimit të TypeScript me një renditje të madhësisë;
  • Runtime vjen në formën e një skedari të vetëm të ekzekutueshëm ("deno"). Për të ekzekutuar aplikacione duke përdorur Deno mjafton Shkarko për platformën e tij ekziston një skedar i ekzekutueshëm, me madhësi rreth 20 MB, i cili nuk ka varësi të jashtme dhe nuk kërkon ndonjë instalim të veçantë në sistem. Për më tepër, deno nuk është një aplikacion monolit, por është një koleksion paketash arkash në Rust (deno_core, ndryshkur_v8), të cilat mund të përdoren veçmas;
  • Kur filloni programin, si dhe për të ngarkuar module, mund të përdorni adresimin e URL-së. 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 shkarkohet dhe ruhet në memorie në sistemin lokal, por nuk përditësohet kurrë automatikisht (përditësimi kërkon ekzekutimin në mënyrë eksplicite të aplikacionit me flamurin "--reload");
  • Përpunimi efikas i kërkesave të rrjetit nëpërmjet HTTP në aplikacione; platforma është projektuar për krijimin e aplikacioneve të rrjetit me performancë të lartë;
  • Aftësia për të krijuar aplikacione universale në internet që mund të ekzekutohen si në Deno ashtu edhe në një shfletues të rregullt në internet;
  • Disponueshmëria grup standard i moduleve, përdorimi i të cilave nuk kërkon lidhje me varësitë e jashtme. Modulet nga koleksioni standard i janë nënshtruar auditimit shtesë dhe testimit të përputhshmërisë;
  • Përveç kohës së funksionimit, platforma Deno vepron gjithashtu si menaxher i paketave dhe ju lejon të aksesoni modulet me URL brenda kodit. Për shembull, për të ngarkuar një modul, mund të specifikoni në kodin "import * si regjistër nga "https://deno.land/std/log/mod.ts". Skedarët e shkarkuar nga serverët e jashtëm nëpërmjet URL-së ruhen në memorie të fshehtë. Lidhja me versionet e modulit përcaktohet duke specifikuar numrat e versionit brenda URL-së, për shembull, "https://unpkg.com/[email mbrojtur]/dist/liltest.js";
  • Struktura përfshin një sistem të integruar të inspektimit të varësisë (komandën "deno info") dhe një mjet për formatimin e kodit (deno fmt);
  • Të gjithë skriptet e aplikacionit mund të kombinohen në një skedar JavaScript.

Dallimet nga Node.js:

  • Deno nuk përdor menaxherin e paketave npm
    dhe nuk është i lidhur me depo, modulet adresohen nëpërmjet një URL ose nga një shteg skedari dhe vetë modulet mund të vendosen në çdo faqe interneti;
  • Deno nuk përdor "package.json" për të përcaktuar modulet;
  • Dallimi në API, të gjitha veprimet asinkrone në Deno kthejnë një premtim;
  • Deno kërkon përcaktim të qartë të të gjitha lejeve të nevojshme për skedarët, variablat e rrjetit dhe mjedisit;
  • Të gjitha gabimet që nuk ofrohen me mbajtësit çojnë në përfundimin e aplikacionit;
  • Deno përdor sistemin e modulit ECMAScript dhe nuk e mbështet require();
  • Serveri HTTP i integruar i Deno është i shkruar në TypeScript dhe funksionon në krye të prizave TCP vendase, ndërsa serveri HTTP Node.js është i shkruar në C dhe ofron lidhje për JavaScript. Zhvilluesit e Deno janë fokusuar në optimizimin e të gjithë shtresës së prizës TCP dhe sigurimin e një ndërfaqeje më të përgjithshme. Serveri Deno HTTP ofron xhiro më të ulët, por garanton vonesë të ulët të parashikueshme. Për shembull, në test, një aplikacion i thjeshtë i bazuar në serverin Deno HTTP ishte në gjendje të përpunonte 25 mijë kërkesa në sekondë me një vonesë maksimale prej 1.3 milisekonda. Në Node.js, një aplikacion i ngjashëm përpunoi 34 mijë kërkesa në sekondë, por vonesat varionin nga 2 dhe 300 milisekonda.
  • Deno nuk është i pajtueshëm me paketat për Node.js (NPM), por po zhvillohet veçmas ndërshtresore për pajtueshmërinë me bibliotekën standarde Node.js, ndërsa zhvillohet, gjithnjë e më shumë aplikacione të shkruara për Node.js do të mund të ekzekutohen në Deno.
  • Burimi: opennet.ru

Shto një koment