AccueilActualités informatiqueDeno 1.20 communique jusqu'à 60 pour cent plus vite avec Rust

Deno 1.20 communique jusqu’à 60 pour cent plus vite avec Rust

Tous les mois, l’équipe de développement de Deno sort une nouvelle version du runtime pour JavaScript et TypeScript. Deno 1.20 communique entre autres plus rapidement avec les parties du runtime écrites en langage de programmation Rust.

Sommaire

Apparemment, Deno communique lors de l’exécution de code entre le moteur JavaScript V8 et la partie de Deno qui est écrite en Rust. Avec la mise à jour, cette communication devrait être jusqu’à 60% plus rapide. Selon un article de blog, l’équipe de développement de Deno a recours pour cela à proc Makros de Rust pour générer des bindings V8 à partir du code Rust existant. La macro doit permettre d’améliorer la désérialisation des arguments inutilisés et d’accélérer la collecte des métriques. Cette nouveauté sert apparemment de base à la future intégration avec l’API V8 Fast, qui devrait encore améliorer les performances entre Javascript et Rust.

De plus, le serveur HTTP natif de Deno sait gérer la compression automatique de la réponse d’un serveur web (Response Body). Si une requête client supporte soit la compression gzip soit la compression brotli et que le serveur répond avec un body qui n’est pas un flux, il est automatiquement compressé dans Deno. Une configuration par les utilisateurs n’est pas nécessaire. L’exemple suivant, tiré de l’article de blog sur la version, sert d’illustration :

import { serve } from "https://deno.land/[email protected]/http/server.ts";

function handler(req: Request): Response {
  const body = JSON.stringify({
    hello: "deno",
    now: "with",
    compressed: "body",
  });
  return new Response(body, {
    headers: {
      "content-type": "application/json; charset=utf-8",
    },
  });
}

serve(handler, { port: 4242 });

Le runtime JavaScript se charge de l’analyse de l’en-tête Accept-Encoding et s’assure que le type de contenu du Response Body est compressible – la réponse est ensuite automatiquement compressée. Vous trouverez plus de détails à ce sujet dans le guide « Automatic Body Compression ».

Lire aussi

La mise à jour introduit également de nouvelles sous-commandes, telles que deno bench et l’API deno-bench. La première semble fonctionner de la même manière que deno test. Cette commande vise à simplifier l’analyse comparative du code et à aider les utilisateurs à identifier les problèmes de performance et de régression.

Deno 1.20 prend désormais en charge la dernière version 4.6 de TypeScript ainsi que la version 10.0 du moteur V8. Vous trouverez de plus amples informations sur la mise à jour dans l’article sur le blog Deno.

Plus d'articles