Доступна платформа Deno 2.0, развиваемая автором Node.js

È stata pubblicata la versione 2.0 della piattaforma Deno, progettata per l'esecuzione isolata di applicazioni server scritte in JavaScript e TypeScript utilizzando il motore V8, impiegato nei browser basati su Chromium. Il progetto Deno è sviluppato da Ryan Dahl, creatore di Node.js, con l'obiettivo di fornire un ambiente più sicuro e di correggere gli errori concettuali presenti nell'architettura di Node.js. Per aumentare la sicurezza, il wrapper attorno al motore V8 è scritto in Rust, e per la gestione delle richieste in modalità non bloccante si utilizza la piattaforma Tokio. Il codice del progetto è distribuito con licenza MIT. Le build sono disponibili per Linux, Windows e macOS.

Nella preparazione del nuovo ramo, particolare attenzione è stata rivolta alla compatibilità con la vecchia infrastruttura JavaScript e all'ampliamento dello spettro dei progetti JavaScript supportati senza compromettere la sicurezza. Tra le modifiche:

  • È stata realizzata la retrocompatibilità con Node.js e npm, consentendo l'esecuzione di applicazioni non modificate create per Node.js. Il supporto per Node.js offre anche la possibilità di migrare gradualmente progetti esistenti da Node.js a Deno o di collegare dipendenze da NPM ai progetti Deno specificando il prefisso «npm:» durante l'importazione dei pacchetti in deno.json.
  • È stata aggiunta la supporto integrato per il file package.json e la cartella node_modules, utilizzati in Node.js.
  • È garantito il supporto per i repository NPM privati, definiti tramite i file «.npmrc».
  • È stato aggiunto il supporto per i popolari framework JavaScript, come Next.js, Astro, Remix, Angular, SvelteKit e QwikCity.
  • È stato aggiunto il supporto per gli spazi di lavoro npm (workspace) e i monorepository (monorepo) con gestione separata delle dipendenze.
  • Sono stati aggiunti nuovi comandi per la gestione dei pacchetti: «deno install» per installare le dipendenze, «deno add» per aggiungere pacchetti a package.json o deno.json, «deno remove» per rimuovere pacchetti. Si segnala che «deno install» è circa 15 volte più veloce di npm quando i pacchetti non sono presenti nella cache e il 90% più veloce quando il pacchetto è presente nella cache (viene supportata sia la cache di node_modules che quella globale).
  • La libreria standard è stata stabilizzata.
  • È garantito un ciclo di supporto prolungato (LTS).
  • È stato presentato JSR: un repository con librerie JavaScript e TypeScript utilizzabili in vari runtime JavaScript.
  • Nella comando «deno fmt» è stata aggiunta la possibilità di formattare contenuti nei formati HTML, CSS e YAML.
  • Nel comando «deno lint» è stata aggiunta la supporto per regole e correzioni specifiche di Node.js.
  • Nel comando «deno test» è stata implementata la possibilità di eseguire test creati utilizzando node:test.
  • Nel comando «deno task» è supportata l'esecuzione di script tramite package.json.
  • Nel comando «deno compile» è stata introdotta la possibilità di firmare digitalmente il codice.
  • Nel comando «deno serve» è stato implementato il parallelismo delle operazioni dei server HTTP sfruttando più core CPU.
  • Nel comando «deno coverage» è stato aggiunto il supporto per la conservazione dei report nel formato HTML.
  • Ottimizzazione delle prestazioni eseguita.
    Доступна платформа Deno 2.0, развиваемая автором Node.js

Caratteristiche principali di Deno:

  • Orientamento alla sicurezza nella configurazione predefinita. Le richieste ai file, le capacità di rete e l'accesso alle variabili ambientali per impostazione predefinita sono bloccati e richiedono un'attivazione esplicita. Le applicazioni predefinite vengono eseguite in ambienti sandbox isolati e non possono accedere alle capacità di sistema senza concessione di autorizzazioni esplicite;
  • Supporto integrato per il linguaggio TypeScript oltre a JavaScript. Per il controllo dei tipi e la generazione di JavaScript viene utilizzato un compilatore TypeScript incorporato, il che comporta un degrado delle prestazioni rispetto all'analisi di JavaScript in V8;
  • Il runtime è fornito sotto forma di un singolo file eseguibile autonomo ('deno'). Per eseguire applicazioni con Deno è sufficiente scaricare un file eseguibile per la propria piattaforma, della dimensione di circa 40 MB, privo di dipendenze esterne e senza la necessità di un'installazione particolare nel sistema. Inoltre, deno non è un'applicazione monolitica, ma rappresenta una collezione di pacchetti crate in Rust (deno_core, rusty_v8), che possono essere utilizzati separatamente;
  • 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.
  • Presenza di un insieme standard di moduli, il cui utilizzo non richiede dipendenze esterne. I moduli della collezione standard hanno superato un audit aggiuntivo e controlli di compatibilità;
  • Oltre a essere una piattaforma runtime, Deno funge anche da gestore di pacchetti e consente di accedere ai moduli tramite URL nel codice. Ad esempio, per caricare un modulo, puoi specificare nel codice «import * as log from «https://deno.land/std/log/mod.ts». I file caricati da fonti esterne server tramite URL vengono memorizzati nella cache. L'assegnazione delle versioni ai moduli è determinata specificando i numeri di versione all'interno dell'URL, ad esempio, «https://unpkg.com/liltest@0.0.5/dist/liltest.js»;
  • Orientamento all'uso degli standard Web, supporto per Promise, fetch e moduli ECMAScript.
  • Compatibilità con pacchetti ospitati nel repository NPM e creati per la piattaforma Node.js.
  • Il sistema integra un ispezionatore delle dipendenze (comando «deno info») e un'utilità per la formattazione del codice (deno fmt);
  • Tutti gli script dell'applicazione possono essere combinati in un unico file JavaScript.

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