Il progetto Deno sta sviluppando una piattaforma JavaScript sicura simile a Node.js

A disposizione rilascio del progetto Dammi 0.33, che offre una piattaforma simile a Node.js per l'esecuzione di applicazioni autonome in JavaScript e TypeScript che può essere utilizzata per eseguire applicazioni senza essere vincolate a un browser, ad esempio creando gestori eseguiti sul server. Deno utilizza un motore JavaScript V8, che viene utilizzato anche in Node.js e nei browser basati sul progetto Chromium. Codice del progetto distribuito da sotto licenza MIT. Il progetto è stato sviluppato da Ryan Dahl (Ryan Dal), 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, il motore V8 è scritto in Rust, che evita molte delle vulnerabilità che derivano dalla manipolazione della memoria di basso livello, come l'accesso after-free, i dereferenziamenti dei puntatori null e i sovraccarichi del buffer. La piattaforma viene utilizzata per elaborare le richieste in modalità non bloccante Tokyo, scritto anche in Rust. Tokio consente di creare applicazioni ad alte prestazioni basate su un'architettura basata sugli eventi, supportando il multi-threading ed elaborando le richieste di rete in modalità asincrona.

Il principale caratteristiche Dicono:

  • Configurazione predefinita orientata alla sicurezza. L'accesso ai file, la rete e l'accesso alle variabili di ambiente sono disabilitati per impostazione predefinita e devono essere abilitati esplicitamente;
  • Supporto integrato per il linguaggio TypeScript oltre a JavaScript;
  • Il runtime si presenta sotto forma di un singolo file eseguibile autonomo ("deno"). Per eseguire applicazioni utilizzando Deno è sufficiente scaricare per la sua piattaforma un file eseguibile, di circa 10 MB, che non ha dipendenze esterne e non richiede alcuna installazione particolare sul sistema;
  • Quando si avvia il programma, così come per caricare i moduli, è possibile utilizzare l'indirizzamento URL. Ad esempio, per eseguire il programma Welcome.js è possibile utilizzare il comando “deno https://deno.land/std/examples/welcome.js”. Il codice proveniente da risorse esterne viene scaricato e memorizzato nella cache del sistema locale, ma non viene mai aggiornato automaticamente (l'aggiornamento richiede l'esecuzione esplicita dell'applicazione con il flag "--reload");
  • Elaborazione efficiente delle richieste di rete tramite HTTP nelle applicazioni; la piattaforma è progettata per creare applicazioni di rete ad alte prestazioni;
  • La capacità di creare applicazioni web universali che possono essere eseguite sia in Deno che in un normale browser web;
  • Oltre al runtime, la piattaforma Deno funge anche da gestore di pacchetti e consente di accedere ai moduli tramite URL all'interno del codice. Ad esempio, per caricare un modulo, è possibile specificare nel codice “import * as log from “https://deno.land/std/log/mod.ts”. I file scaricati da server esterni tramite URL vengono memorizzati nella cache. Il collegamento alle versioni del modulo viene determinato specificando i numeri di versione all'interno dell'URL, ad esempio "https://unpkg.com/[email protected]/dist/liltest.js";
  • La struttura include un sistema integrato di ispezione delle dipendenze (il comando “deno info”) e un'utilità per la formattazione del codice (deno fmt).
  • Per gli sviluppatori di applicazioni proposto una serie di moduli standard che sono stati sottoposti a ulteriori controlli e test di compatibilità;
  • Tutti gli script dell'applicazione possono essere combinati in un unico file JavaScript.

Differenze da Node.js:

  • Deno non utilizza il gestore pacchetti npm
    e non è legato a repository, i moduli sono indirizzati tramite un URL o un percorso di file e i moduli stessi possono essere posizionati su qualsiasi sito web;

  • Deno non utilizza "package.json" per definire i moduli;
  • Differenza API, tutte le azioni asincrone in Deno restituiscono una promessa;
  • Deno richiede la definizione esplicita di tutti i permessi necessari per file, variabili di rete e di ambiente;
  • Tutti gli errori che non vengono forniti con i gestori portano alla chiusura dell'applicazione;
  • Deno utilizza il sistema di moduli ECMAScript e non supporta require().

Fonte: opennet.ru

Aggiungi un commento