U prughjettu Deno sviluppa una piattaforma JavaScript sicura simile à Node.js

Dispunibule liberazione di u prugettu Denu 0.33, chì offre una piattaforma Node.js-like per l'esekzione di l'applicazioni stand-alone in JavaScript è TypeScript chì pò esse usatu per eseguisce l'applicazioni senza esse ligatu à un navigatore, cum'è a creazione di handlers chì currenu in u servitore. Deno usa un mutore JavaScript V8, chì hè ancu utilizatu in Node.js è navigatori basati nantu à u prughjettu Chromium. Codice di prughjettu distribuitu da sottu licenza MIT. U prughjettu hè sviluppatu da Ryan Dahl (Ryan Dahl), creatore di a piattaforma JavaScript Node.js.

Unu di i scopi principali di creà un novu runtime per JavaScript hè di furnisce un ambiente più sicuru. Per migliurà a sicurità, u mutore V8 hè scrittu in Rust, chì evita assai di e vulnerabilità chì nascenu da a manipulazione di memoria di livellu bassu, cum'è l'accessu dopu senza, null pointer dereferences, è buffer overruns. A piattaforma hè aduprata per processà e dumande in modu senza bloccu Tokyo, scrittu ancu in Rust. Tokio vi permette di creà applicazioni d'alta prestazione basate nantu à l'architettura guidata da l'avvenimenti, supportendu e richieste di rete multi-threading è processendu in modu asincronu.

menu особенности Deno:

  • Cunfigurazione predeterminata orientata à a sicurità. L'accessu à i schedari, a rete, è l'accessu à e variàbili di l'ambiente sò disattivati ​​per difettu è deve esse attivatu esplicitamente;
  • Supportu integratu per a lingua TypeScript in più di JavaScript;
  • Runtime vene in a forma di un unicu schedariu eseguibile autonomu ("deno"). Per eseguisce applicazioni cù Deno hè abbastanza carica per a so piattaforma un schedariu eseguibile, circa 10 MB in grandezza, chì ùn hà micca dipendenze esterne è ùn deve micca installazione speciale in u sistema;
  • Quandu principia u prugramma, è ancu per carricà moduli, pudete aduprà l'indirizzu URL. Per esempiu, per eseguisce u prugramma welcome.js, pudete aduprà u cumandimu "deno https://deno.land/std/examples/welcome.js". U codice da risorse esterne hè telecaricatu è cache in u sistema lucale, ma ùn hè mai aghjurnatu automaticamente (l'aghjurnamentu richiede esplicitamente l'esecuzione di l'applicazione cù a bandiera "--reload");
  • Trattamentu efficiente di e dumande di rete via HTTP in applicazioni; a piattaforma hè pensata per creà applicazioni di rete d'altu rendiment;
  • A capacità di creà applicazioni web universali chì ponu esse eseguite sia in Deno sia in un navigatore web regulare;
  • In più di runtime, a piattaforma Deno agisce ancu cum'è un gestore di pacchetti è permette di accede à i moduli per URL in u codice. Per esempiu, per carricà un modulu, pudete specificà in u codice "import * cum'è log da "https://deno.land/std/log/mod.ts". I fugliali scaricati da i servitori esterni via URL sò in cache. U ligame à e versioni di u modulu hè determinatu da specificà i numeri di versione in l'URL, per esempiu, "https://unpkg.com/[email prutettu]/dist/liltest.js";
  • A struttura include un sistema d'ispezione di dependenza integrata (u cumandamentu "deno info") è una utilità per u furmatu di codice (deno fmt).
  • Per i sviluppatori di applicazioni prupostu un inseme di moduli standard chì anu sottumessu auditu supplementu è teste di cumpatibilità;
  • Tutti i script di l'applicazione ponu esse cumminati in un schedariu JavaScript.

Differenze da Node.js:

  • Deno ùn usa micca u gestore di pacchetti npm
    è ùn hè micca ligatu à i repositori, i moduli sò indirizzati via un URL o da una strada di u schedariu, è i moduli stessi ponu esse posti in ogni situ web;

  • Deno ùn usa micca "package.json" per definisce i moduli;
  • Differenza API, tutte l'azzioni asincrone in Deno tornanu una prumessa;
  • Deno richiede una definizione esplicita di tutti i permessi necessarii per i schedarii, a rete è e variabili di l'ambiente;
  • Tutti l'errori chì ùn sò micca furniti cù handlers portanu à a terminazione di l'applicazione;
  • Deno usa u sistema di moduli ECMAScript è ùn supporta micca require ().

Source: opennet.ru

Add a comment