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

È disponibile rilascio del progetto Deno 0.33, che offre una piattaforma simile a Node.js per l'esecuzione isolata di applicazioni in JavaScript e TypeScript, utilizzabile per eseguire applicazioni senza dipendenza dal browser, ad esempio per creare gestori che funzionano sul server. Deno utilizza il motore JavaScript V8, che viene anche utilizzato in Node.js e nei browser basati sul progetto Chromium. Il codice del progetto è distribuito è sotto licenza MIT. Il progetto è sviluppato da Ryan Dahl (Ryan Dahl), il creatore della piattaforma JavaScript Node.js.

Uno degli obiettivi principali della creazione di un nuovo runtime per JavaScript è fornire un ambiente più sicuro. Per migliorare la sicurezza, l'involucro attorno al motore V8 è scritto in Rust, che consente di evitare molte vulnerabilità legate alla gestione a basso livello della memoria, come l'accesso alla memoria dopo che è stata liberata, la dereferenziazione di puntatori nulli e il buffer overflow. Per gestire le richieste in modo non bloccante, viene utilizzata la piattaforma Tokio, anch'essa scritta in Rust. Tokio consente di creare applicazioni ad alte prestazioni basate su un'architettura orientata agli eventi (Event-driven), che supportano il multithreading e la gestione delle richieste di rete in modo asincrono.

Principali di rendering tramite WebGL e Canvas, Deno:

  • Orientamento alla sicurezza nella configurazione predefinita. Gli accessi ai file, le funzionalità di rete e l'accesso alle variabili d'ambiente sono per impostazione predefinita bloccati e richiedono un'esplicita attivazione;
  • Supporto integrato per TypeScript oltre a JavaScript;
  • Il runtime è fornito come un singolo file eseguibile autonomo ("deno"). Per eseguire applicazioni utilizzando Deno basta essere scaricata per la sua piattaforma un unico file eseguibile, di circa 10 MB, senza dipendenze esterne e che non richiede alcuna installazione speciale nel sistema;
  • Quando avvii un programma, puoi anche utilizzare indirizzamenti tramite URL per caricare moduli. Ad esempio, per eseguire il programma welcome.js puoi utilizzare il comando «deno https://deno.land/std/examples/welcome.js». Il codice da risorse esterne viene scaricato e memorizzato nella cache sul sistema locale, ma non viene mai aggiornato automaticamente (per aggiornare, è necessario eseguire esplicitamente l'applicazione con il flag «—reload»);
  • Gestione efficace delle richieste di rete in applicazioni HTTP, la piattaforma è progettata per creare applicazioni di rete ad alte prestazioni;
  • Possibilità di creare applicazioni web universali, che possono essere eseguite sia in Deno che nei normali browser web;
  • Oltre al runtime, la piattaforma Deno funge anche da gestore di pacchetti e permette di accedere ai moduli all'interno del codice tramite URL. Ad esempio, per caricare un modulo, si può specificare nel codice "import * as log from "https://deno.land/std/log/mod.ts". I file caricati da server esterni tramite URL vengono memorizzati nella cache. Il legame alle versioni dei moduli è determinato dalle specifiche dei numeri di versione all'interno dell'URL, ad esempio "https://unpkg.com/liltest@0.0.5/dist/liltest.js";
  • È integrato un sistema di ispezione delle dipendenze (comando «deno info») e uno strumento per la formattazione del codice (deno fmt).
  • Per gli sviluppatori di applicazioni è stato proposto un insieme di moduli standard, sottoposti a audit aggiuntivo e verifica di compatibilità;
  • Tutti gli script dell'applicazione possono essere uniti in un unico file JavaScript.

Differenze rispetto a Node.js:

  • Deno non utilizza il gestore di pacchetti npm
    e non si lega ai repository, l'indirizzamento dei moduli avviene tramite URL o percorso file, e i moduli stessi possono essere ospitati su qualsiasi sito;
  • In Deno non viene utilizzato "package.json" per definire i moduli;
  • Esiste una differenza nell'API, tutte le azioni asincrone in Deno restituiscono un promise;
  • Deno richiede una definizione esplicita di tutte le autorizzazioni necessarie per file, rete e variabili d'ambiente;
  • Tutti gli errori non gestiti portano alla chiusura dell'applicazione;
  • Deno utilizza il sistema di moduli ECMAScript e non supporta require().

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster