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

Disponibile il 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 l'esecuzione di app senza legame con il browser, ad esempio per creare handler che funzionano sul server. Deno utilizza il motore JavaScript V8, che viene utilizzato anche 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), creatore della piattaforma JavaScript Node.js.

Uno dei principali obiettivi della creazione di un nuovo runtime per JavaScript è fornire un ambiente più sicuro. Per migliorare la sicurezza, l'interfaccia attorno al motore V8 è scritta in Rust, permettendo di evitare molte vulnerabilità derivanti dalla gestione a basso livello della memoria, come l'accesso all'area di memoria dopo il rilascio, la dereferenziazione di puntatori nulli e l'overflow del buffer. Per gestire le richieste in modo non bloccante, viene utilizzata la piattaforma Tokio, scritto anche in linguaggio Rust. Tokio consente di creare applicazioni ad alte prestazioni basate su architettura orientata agli eventi, supportando il multithreading e la gestione delle richieste di rete in modo asincrono.

Principali caratteristiche Deno:

  • Orientamento alla sicurezza nella configurazione predefinita. Gli accessi a file, capacità di rete e accesso a variabili di ambiente sono bloccati di default e richiedono un'esplicita attivazione;
  • Supporto integrato per il linguaggio TypeScript oltre a JavaScript;
  • Il runtime è fornito come un singolo file eseguibile autonomo («deno»). Per eseguire applicazioni utilizzando Deno è sufficiente scaricare per la propria piattaforma un file eseguibile di circa 10 MB, privo di dipendenze esterne e che non richiede alcuna installazione particolare nel sistema;
  • All'avvio del programma e per il caricamento dei moduli è possibile utilizzare l'indirizzamento tramite URL. Ad esempio, per avviare il programma welcome.js, si può 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 avviare esplicitamente l'applicazione con il flag «—reload»).
  • Gestione efficace delle richieste di rete HTTP nelle applicazioni; 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 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 nel codice. 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 sono memorizzati nella cache. I vincoli alle versioni dei moduli sono definiti attraverso l'indicazione 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 il formato del codice (deno fmt).
  • Per gli sviluppatori di applicazioni designato un insieme di moduli standard che hanno subito un audit aggiuntivo e verifiche 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 collega ai repository; gli indirizzi dei moduli sono gestiti tramite URL o percorsi di file, con i moduli che possono essere ospitati su qualsiasi sito;
  • In Deno non si utilizza il «package.json» per definire i moduli;
  • Differenze nell'API: tutte le operazioni asincrone in Deno restituiscono un promise;
  • Deno richiede una dichiarazione esplicita di tutti i permessi necessari per file, rete e variabili d'ambiente;
  • Tutti gli errori non gestiti portano alla terminazione dell'applicazione;
  • In Deno si applica il sistema di moduli ECMAScript e non viene supportato 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