Webentwicklung: Deno 1.13 experimentiert mit Google Chromes WebSocketStream-API

Die Node.js-Alternative Deno ist in Version 1.13 erschienen und hat einen Breaking Change sowie experimentelle Features im Gepäck.

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen

(Bild: asharkyu/Shutterstock.com)

Lesezeit: 2 Min.

Die Deno Company hat Deno 1.13 veröffentlicht. Sie hat die experimentelle WebSocketStream-API mit an Bord, die auf Web Streams basiert. Daneben bringt Deno 1.13 eine stabile native HTTP/2-Server-API mit, die seit Deno 1.9 als experimentell galt.

Deno ist eine Laufzeitumgebung zur Webentwicklung mit JavaScript und TypeScript, die V8 verwendet und auf Rust basiert. Sie entstammt der Feder von Ryan Dahl, der zuvor schon Node.js entwickelte und mit der Alternative Deno dessen Designfehler zu beheben suchte. Sie erreichte im letzten Jahr die erste Hauptversion, und seit Version 1.8 wagt sich Deno sogar an Machine Learning. Herausgeber der Open-Source-Laufzeitumgebung ist seit März die neu gegründete Deno Company.

Version 1.13 hat die neue WebSocketStream-API als experimentelles Feature an Bord. Das Google-Chrome-Team entwickelt sie derzeit als Web-Streams-basierte Variante, um die Event-basierte WebSocket-API abzulösen. Eine Erklärung auf Github beschreibt das Vorhaben, das sich noch im Prototyping-Status befindet. Als Vorteil nennt der GitHub-Eintrag, dass mit der neuen API geschriebene Anwendungen responsiver sein sollen, da sie Backpressure berücksichtigt.

Aus dem experimentellen in den stabilen Status geht in Deno 1.13 eine andere API über: die in Version 1.9 erstmals vorgestellte native HTTP/2-Server-API. Sie erlaubt Deno, „out of the box“ als Server für HTTP/1.1- und HTTP/2-Traffic zu fungieren:

for await (const conn of Deno.listen({ port: 4500 })) {
  (async () => {
    for await (const { respondWith } of Deno.serveHttp(conn)) {
      respondWith(new Response("Hello World"));
    }
  })();
}

Die Verwendung von std/http wird noch in einigen weiteren Releases möglich sein, jedoch empfiehlt das Deno-Team den Umstieg auf den neuen nativen Server und plant zu diesem Zweck bald einen Migrations-Guide zu erstellen.

Zu den weiteren Neuerungen in Deno 1.13 zählen das V8-Upgrade auf Version 9.3 mit zwei neuen JavaScript-Sprachfeatures sowie Unterstützung für die neue self.structuredClone-Funktion der Web Hypertext Application Technology Working Group (WHATWG). Als Breaking Change gilt die Umbenennung von Deno.WebSocketUpgrade::websocket in socket.

Die Release Notes sind im GitHub-Repository und detaillierter auf dem Deno-Blog zu finden.

(mai)