La version de la plateforme JavaScript Deno 1.16 a Ă©tĂ© officiellement lancĂ©e, destinĂ©e Ă l'exĂ©cution isolĂ©e (sans utilisation du navigateur) d'applications Ă©crites en JavaScript et TypeScript. Le projet est dĂ©veloppĂ© par l'auteur de Node.js, Ryan Dahl. Le code de la plateforme est Ă©crit en Rust et est distribuĂ© sous licence MIT. Des binaires prĂȘts Ă l'emploi sont disponibles pour Linux, Windows et macOS.
Le projet est similaire à la plateforme Node.js et, comme elle, utilise le moteur JavaScript V8. Cependant, selon l'auteur de Node.js, il corrige un certain nombre de défauts architecturaux de son prédécesseur et se distingue par les nuances suivantes :
- Utilisation de Rust comme principal langage, ce qui, selon les développeurs, réduit le risque d'apparition de vulnérabilités liées à la manipulation basse de la mémoire (débordement de tampon, use-after-free, etc.) ;
- Deno n'utilise pas de gestionnaire de paquets npm et package.json, offrant à l'utilisateur l'installation de modules en spécifiant l'URL ou le chemin du module à installer. Cependant, plusieurs utilitaires sont proposés par le projet pour faciliter le travail avec des modules tiers ;
- Les applications s'exécutent isolément dans des environnements de bac à sable et n'ont pas accÚs au réseau, aux variables d'environnement et au systÚme de fichiers, sans autorisations explicites ;
- L'architecture permet de créer des applications web universelles, capables de fonctionner à la fois dans le systÚme Deno et dans un navigateur classique ;
- Utilisation des « ES Modules » et absence de support pour require();
- Toute erreur non gérée par le développeur dans une application web entraßne sa termination forcée ;
- Support de TypeScript en plus de JavaScript ;
- La taille totale de la plateforme prĂȘte Ă l'emploi est de 84 Mo (31 Mo dans un fichier zip) sous la forme d'un seul fichier exĂ©cutable ;
- Un systÚme de résolution de dépendances et de formatage de code est inclus ;
- Orienté vers des applications à haute performance.
Deno traite les requĂȘtes en mode non-bloquant en utilisant la plateforme Tokio, conçue pour crĂ©er des applications Ă haute performance basĂ©es sur une architecture orientĂ©e Ă©vĂ©nements (event-driven). Fait intĂ©ressant, le serveur HTTP intĂ©grĂ© de Deno est implĂ©mentĂ© en TypeScript au-dessus de sockets TCP natifs, ce qui amĂ©liore la performance des opĂ©rations rĂ©seau.
La nouvelle version comprend :
- Optimisation des performances (4 correctifs);
- Correction de plus de 15 erreurs, notamment le support par le client TLS du HTTP/2, la sous-systÚme de codage qui supporte des balises de codage supplémentaires, etc.
- Plus de vingt nouveautés, parmi lesquelles la stabilisation des sous-systÚmes test Deno.startTls et Deno.TestDefinition.permissions, la mise à jour du moteur JS V8 vers la version 9.7 et le support des transformations React 17 JSX.
Source : opennet.ru
