publikimi i projektit , që ofron një platformë të ngjashme me Node.js për ekzekutimin e aplikacioneve të shkruara në JavaScript dhe TypeScript në një ambient të veçuar, i cili mund të përdoret për ekzekutimin e aplikacioneve pa varësi nga shfletuesi, për shembull, për krijimin e handler-ëve që funksionojnë në server. Në Deno përdoret motori JavaScript , që gjithashtu përdoret në Node.js dhe shfletuesit të bazuar në projektin Chromium. Kodi i projektit në përputhje me licencën MIT. Projekti zhvillohet nga Ryan Dahl (), krijuesi i platformës JavaScript, Node.js.
Një nga qëllimet kryesore të krijimit të këtij runtime për JavaScript është sigurimi i një mjedisi më të sigurt. Për të rritur sigurinë, mbështjellja përreth motorit V8 është shkruar në gjuhën Rust, e cila ndihmon në evitimin e shumë dobësive që lindin nga puna e ulët me kujtesën, si p.sh. qasja në zonën e kujtesës pas çlirimit të saj, dereferencimi i treguesve null dhe dalja nga kufijtë e buffers. Për të trajtuar kërkesat në mënyrë jo bllokuese, përdoret platforma , 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 Deno:
- Orientimi ndaj sigurisë në konfigurimin e parazgjedhur. Qasja në skedarë, mundësitë rrjet dhe akses në variablat e ambientit janë bllokuar si parazgjedhje dhe kërkojnë aktivizim të qartë;
- Mbështetje e ndërtuar për gjuhën TypeScript përveç JavaScript;
- Runtime vjen në formën e një skedari ekzekutiv të pavarur (‘deno’). Për të ekzekutuar aplikacione duke përdorur Deno, mjafton një skedar ekzekutiv për platformën tuaj, me madhësi rreth 10 MB, pa varësi të jashtme dhe që nuk kërkon ndonjë instalim të veçantë në sistem;
- 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;
- 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»;
- Në përbërje është e integruar një sistem inspektimi i varshmërisë (komanda «deno info») dhe një utilitare për formatimin e kodit (deno fmt).
- Për zhvilluesit e aplikacioneve një grup modulash standard që kanë kaluar një audit të detajuar dhe provë përkompatibiliteti;
- 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 përdoret sistemi i moduleve ECMAScript dhe nuk mbështetet require().
Burimi: opennet.ru
