lëshimin e projektit , ofron një platformë të ngjashme me Node.js për ekzekutimin e veprimesh në gjuhën JavaScript dhe TypeScript në mënyrë të pavarur nga shfletuesi, për shembull, për krijimin e handler-ave që funksionojnë në server. Në Deno përdoret motori JavaScript , i cili gjithashtu përdoret në Node.js dhe shfletuesit e bazuar në projektin Chromium. Kodi i projektit nën licencën MIT. Projekti është i zhvilluar nga Ryan Dahl (), krijuesi i platformës JavaScript Node.js.
Një nga qëllimet kryesore të krijimit të një runtime të ri për JavaScript është ofrimi i një ambienti më të sigurt. Për të rritur sigurinë, mbështjellësi për motorrin V8 është shkruar në gjuhën Rust, e cila lejon shmangien e shumë dobësive që lindin nga puna me memorien në nivel të ulët, siç janë qasja në hapësirën e memories pas çlirimit të saj, dereferencimi i treguesve të null dhe shkelja e kufijve të tamponit. 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ë 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 Deno:
- Orientimi në siguri në konfigurimin e paracaktuar. Qasja në skedarë, mundësitë rrjet dhe qasja në variablat e mjedisit janë të bllokuara në parazgjedhje dhe kërkojnë aktivizim të qartë;
- Mbështetje e integruar për gjuhën TypeScript përveç JavaScript;
- Runtime ofrohet në formën e një skedari ekzekutiv të pavarur («deno»). Për të ekzekutuar aplikacione duke përdorur Deno, mjafton për platformën e saj një skedar ekzekutiv, me një madhësi prej rreth 10 Mb, që nuk ka varësi të jashtme dhe nuk kërkon ndonjë instalim të veçantë në sistem;
- 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;
- 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»;
- Në përbërje është e integruar një sistem inspektimi të varësive (komanda «deno info») dhe një mjet për formatimin e kodit (deno fmt).
- Për zhvilluesit e aplikacioneve një grup modulash standardë që kanë kaluar një audt shtesë dhe kontroll për përputhshmërinë;
- 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 zbatohet sistemi i moduleve ECMAScript dhe nuk mbështetet require().
Burimi: opennet.ru
