Deno 1.26, la dernière version du moteur d'exécution TypeScript/JavaScript qui ambitionne de palier aux lacunes de Node.js, améliore un peu plus la compatibilité avec Node.js, entre autres choses. Selon un message détaillant les évolutions, la mise à jour inclut des implémentations pour plusieurs API précédemment non prises en charge dans la couche de compatibilité Node.js. De plus, la suite de tests de la couche de compatibilité a été actualisée pour être compatible avec Node.js v18.8.0, en prévision du passage de Node.js 18 au statut Long Term Support (LTS) le mois prochain.

Par ailleurs, Deno 1.26 met à jour l'implémentation des flux Node.js pour pouvoir utiliser le module NPM readable-stream@4.1.0, et permettre à Deno de mieux suivre les changements et les nouvelles fonctionnalités. Dans cette couche de compatibilité, les modules stream et stream/promises sont désormais implémentés via readable_stream. Cette refactorisation introduit également de nouvelles API, notamment Writable.toWeb() et Readable.toWeb(), utilisées pour convertir les flux Node.js en flux Web. En outre, fs.ReadStream et fs.WriteStream ont été mises à jour pour améliorer la compatibilité avec les implémentations dans Node.js. Les développeurs peuvent mettre à niveau leur version vers Deno 1.26 en exécutant deno upgrade. Ils trouveront aussi d'autres instructions d'installation de Deno sur deno.land.

Corrections des spécificateurs NPM et amélioration des performances

Dans cette dernière version, les développeurs ont aussi corrigé des bogues liés aux spécificateurs NPM. Cependant, la prise en charge des modules NPM reste expérimentale et elle est toujours marquée par le drapeau -unstable. Des bogues provoquant des blocages intempestifs sous Windows ont été corrigés dans l'API Deno.serve(), qui fournit un serveur HTTP rapide. La prise en charge de l'API Web Cache a été ajoutée afin de permettre la mise en cache des objets request/response (demande/réponse), utile lors de la génération dynamique de réponses. Un nouvel indicateur de permission, --allow-sys, protège l'accès aux API qui fournissent des informations sur le système d'exploitation d'un utilisateur. À noter également que Deno 1.26 est livré avec TypeScript 4.8.

Les développeurs de Deno expliquent par ailleurs qu'ils ont amélioré en permanence les performances de Deno, cherchant aussi bien à identifier les goulets d'étranglement, qu’à réduire la latence et à optimiser le traitement. L'équipe a aussi cherché à améliorer l'expérience du développeur, en modifiant par exemple la fonction de recherche sur deno.land, et en étendant la recherche de symboles dans les API intégrées, la bibliothèque standard Deno et les modules tiers. D’autres améliorations sont prévues, comme la possibilité d’établir des liens automatiques entre les symboles dans la documentation.