Deno 1.20 kommuniziert bis zu 60 Prozent schneller mit Rust

Das Update der Runtime für JavaScript und TypeScript bringt nicht nur eine schnellere Anbindung an Rust, sondern führt darüber hinaus neue Sub-Befehle ein.

In Pocket speichern vorlesen Druckansicht 12 Kommentare lesen

(Bild: Artur Szczybylo/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Madeleine Domogalla
Inhaltsverzeichnis

Monatsweise bringt das Deno-Entwicklerteam eine neue Version der Runtime für JavaScript und TypeScript heraus. Deno 1.20 kommuniziert unter anderem schneller mit in der Programmiersprache Rust geschriebenen Teilen von der Runtime.

Offenbar kommuniziert Deno beim Ausführen von Code zwischen der JavaScript-Engine V8 und dem Teil von Deno, der in Rust geschrieben ist. Mit dem Update soll diese Kommunikation bis zu 60 Prozent schneller sein. Laut Blogbeitrag greift das Deno-Entwicklerteam hierfür auf proc Makros von Rust zurück, um V8-Bindings aus bestehendem Rust-Code zu generieren. Das Makro soll die Deserialisierung unbenutzter Argumente ausbessern und die Sammlung von Metriken beschleunigen. Die Neuerung dient offenbar als Basis für die zukünftige Integration mit der V8 Fast API, die die Performance zwischen Javascript und Rust weiter verbessern soll.

Darüber hinaus weiß der native HTTP-Server von Deno mit der automatischen Komprimierung der Antwort eines Webservers (Response Body) umzugehen. Unterstützt eine Client-Anfrage entweder die gzip- oder brotli-Komprimierung und der Server antwortet mit einem Body, der kein Stream ist, wird er automatisch in Deno komprimiert. Eine Konfiguration durch Nutzerinnen und Nutzer ist nicht notwendig. Zur Veranschaulichung dient das folgende Beispiel aus dem Blogbeitrag zum Release:

import { serve } from "https://deno.land/std@0.130.0/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 });

Die JavaScript-Runtime übernimmt die Analyse des Accept-Encoding-Header und stellt sicher, dass der Inhalt-Typ des Response Body komprimierbar ist – die Antwort wird im Anschluss automatisch komprimiert. Weitere Details dazu finden sich in der Anleitung "Automatic Body Compression".

Das Update führt darüber hinaus neue Sub-Befehle ein, beispielsweise deno bench und die deno-bench-API. Ersterer funktioniert dabei offenbar ähnlich wie deno test. Dieses Kommando soll das Benchmarking von Code vereinfachen und Nutzern dabei helfen, Performance-Probleme und Regression zu identifizieren.

Deno 1.20 unterstützt nun auch die neueste TypeScript-Version 4.6 sowie 10.0 der V8-Engine. Nähere Informationen zum Update finden sich im Beitrag auf dem Deno-Blog.

(mdo)