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.
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 ().