Проект Deno развивает защищённую JavaScript-платформу, похожую на Node.js

Disponibil versiunea proiectului Deno 0.33, oferind o platformă similară cu Node.js pentru rularea izolată a aplicațiilor scrise în JavaScript și TypeScript, ceea ce poate fi utilizat pentru a rula aplicații fără legătură cu un browser, de exemplu, pentru a crea manipulatoare care funcționează pe server. Deno folosește motorul JavaScript V8, care este de asemenea utilizat în Node.js și browserele bazate pe proiectul Chromium. Codul proiectului se răspândește este licențiat sub MIT. Proiectul este dezvoltat de Ryan Dahl (Ryan Dahl), creatorul platformei JavaScript Node.js.

Una dintre principalele obiective în crearea unui nou runtime pentru JavaScript este oferirea unui mediu mai sigur. Pentru a crește securitatea, înfășurarea în jurul motorului V8 este scrisă în limbajul Rust, ceea ce permite evitarea multor vulnerabilități apărute din cauza manipulării de nivel scăzut a memoriei, cum ar fi accesarea zonei de memorie după eliberarea acesteia, dereferențierea pointerilor nuli și depășirea limitelor buffer-ului. Pentru a gestiona cererile într-un mod non-blocant se folosește platforma Tokio, de asemenea, scrisă în limbajul Rust. Tokio permite crearea de aplicații de înaltă performanță bazate pe arhitectura orientată pe evenimente (Event-driven), care suportă multi-threading și procesarea solicitărilor de rețea în mod asincron.

Principalele grafica realizată prin WebGL și Deno:

  • Orientarea spre securitate în configurația implicită. Accesul la fișiere, capacitățile de rețea și accesul la variabilele de mediu sunt blocate implicit și necesită activare explicită;
  • Suport încorporat pentru TypeScript, pe lângă JavaScript;
  • Runtime-ul vine sub forma unui singur fișier executabil complet („deno”). Pentru a rula aplicații folosind Deno, este suficient descărcată pentru platforma sa un singur fișier executabil, cu o dimensiune de aproximativ 10 MB, fără dependențe externe și care nu necesită vreo instalare specială în sistem;
  • Pentru a lansa programe, precum și pentru a încărca module, se poate utiliza adresarea prin URL. De exemplu, pentru a lansa programul welcome.js, se poate folosi comanda „deno https://deno.land/std/examples/welcome.js”. Codul de pe resurse externe este descărcat și stocat în sistemul local, dar nu este niciodată actualizat automat (pentru actualizare este necesară rularea explicită a aplicației cu flagul „—reload”);
  • Procesarea eficientă a cererilor de rețea HTTP, platforma fiind concepută pentru construirea de aplicații de rețea de înaltă performanță;
  • Posibilitatea de a crea aplicații web universale care pot rula atât în Deno, cât și în browsere web obișnuite;
  • Pe lângă runtime, platforma Deno îndeplinește și rolul de manager de pachete și permite accesarea modulelor prin URL în cod. De exemplu, pentru a încărca un modul, se poate specifica în cod „import * as log from "https://deno.land/std/log/mod.ts". Fișierele încărcate de pe servere externe prin URL sunt stocate în cache. Legăturile cu versiunile modulelor sunt stabilite prin indicarea numerelor de versiuni în URL, de exemplu, "https://unpkg.com/liltest@0.0.5/dist/liltest.js";
  • Include un sistem de inspectare a dependențelor (comanda „deno info”) și un utilitar pentru formatarea codului (deno fmt).
  • Pentru dezvoltatorii de aplicații sub licența MIT. Instrumentul utilizează metode de învățare automată, împreună cu analiza statică și dinamică a codului JavaScript. Se afirmă că utilizarea învățării automate a permis îmbunătățirea semnificativă a preciziei în identificarea codului pentru identificarea ascunsă și a identificat cu 26% mai multe scripturi problematice un set de module standard care au trecut printr-o auditare suplimentară și verificare a compatibilității;
  • Toate scripturile aplicației pot fi combinate într-un singur fișier JavaScript.

Diferitele de Node.js:

  • Deno nu folosește managerul de pachete npm
    și nu se leagă de depozite; adresarea modulelor se realizează prin URL sau pe cale de fișier, iar modulele în sine pot fi găzduite pe orice site;
  • În Deno nu se utilizează „package.json” pentru definirea modulelor;
  • Diferența API-ului, toate acțiunile asincrone în Deno returnează promisiuni;
  • Deno necesită definirea explicită a tuturor permisiunilor necesare pentru fișiere, rețea și variabile de mediu;
  • Toate erorile care nu au gestionari determină terminarea execuției aplicației;
  • În Deno se folosește sistemul de module ECMAScript și nu se suportă require().

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster