È stata rilasciata la piattaforma JavaScript Deno 1.16, progettata per l'esecuzione isolata (senza l'uso di un browser) di applicazioni scritte nei linguaggi JavaScript e TypeScript. Il progetto è sviluppato dall'autore di Node.js, Ryan Dahl. Il codice della piattaforma è scritto in Rust e distribuito con licenza MIT. Le versioni pronte sono disponibili per Linux, Windows e macOS.
Il progetto è simile alla piattaforma Node.js e, come questa, utilizza il motore JavaScript V8, ma, secondo l'autore di Node.js, risolve vari errori architettonici del suo predecessore e si distingue da esso per i seguenti aspetti:
- L'utilizzo come linguaggio principale di Rust, che, secondo gli sviluppatori, riduce il rischio di vulnerabilità legate alla gestione della memoria a basso livello (overflow del buffer, use-after-free, ecc.);
- Deno non utilizza un gestore di pacchetti npm e package.json, proponendo all'utente di installare moduli specificando l'URL o il percorso del modulo per l'installazione. Tuttavia, il progetto offre diversi strumenti per semplificare il lavoro con i moduli esterni;
- Le applicazioni vengono eseguite in modo isolato in sandbox e non hanno accesso alla rete, alle variabili d'ambiente e al filesystem, senza autorizzazioni esplicitamente concesse;
- Nell'architettura è prevista la possibilità di creare applicazioni web universali, capaci di funzionare sia nel sistema Deno che in un normale browser;
- L'uso di «ES Modules» e l'assenza del supporto per require();
- Qualsiasi errore non gestito dallo sviluppatore nell'applicazione web porta a un termine forzato;
- Supporto per TypeScript oltre a JavaScript;
- La dimensione totale della piattaforma pronta per l'uso è di 84 MB (31 MB in formato zip) in un singolo file eseguibile;
- In dotazione c'è un sistema di risoluzione delle dipendenze e di formattazione del codice;
- Orientata a applicazioni ad alte prestazioni.
Deno gestisce le richieste in modalità non bloccante utilizzando la piattaforma Tokio, progettata per creare applicazioni ad alte prestazioni basate su architettura orientata agli eventi (event-driven). È interessante notare che il server HTTP integrato di Deno è implementato in TypeScript sopra i socket TCP nativi, il che ha un effetto positivo sulle prestazioni delle operazioni di rete.
Nella nuova versione si segnala:
- Ottimizzazione delle prestazioni (4 patch);
- Correzione di oltre 15 bug, in particolare, ora il client TLS supporta HTTP/2, il sottosistema di codifica supporta etichette di codifica aggiuntive, ecc.;
- Più di venti nuove funzionalità, tra cui la stabilizzazione dei precedenti sottosistemi di test Deno.startTls e Deno.TestDefinition.permissions, l'aggiornamento del motore JS V8 alla versione 9.7 e il supporto per le trasformazioni React 17 JSX.
Fonte: opennet.ru
