Neue Deno-Version mit stabilem nativen HTTP-Server

Neue Deno-Version mit stabilem nativen HTTP-Server

Deno 1.13 veröffentlicht

Die Node.js-Alternative Deno stellt eine Laufzeitumgebung für JavaScript-Programme bereit. Die neue Version aktualisiert unter anderem die V8-Engine auf die Version 9.3. Darüber hinaus liegt die Schnittstelle zur Erstellung eines nativen HTTP-Servers in einer stabilen Fassung vor.

Der Server lässt sich dabei direkt über das Objekt „Deno“ in Betrieb nehmen. Mit folgendem Aufruf lauscht er beispielsweise an Port „8080“:

const server = Deno.listen({ port: 8080 });

Deno kann dabei sowohl mit HTTP/1.1- als auch HTTP/2-Verbindungen umgehen. Unter der Haube nutzt die JavaScript-Laufzeitumgebung den in Rust geschriebenen Hyper Web Server. Der neue native HTTP-Server löst die alte Schnittstelle „std/http“ ab. Da sie in einer der kommenden Versionen verschwinden soll, raten die Deno-Entwickler zum Umstieg auf den nativen HTTP-Server. Eine entsprechende Migrationsanleitung soll in Kürze die Online-Dokumentation liefern.

Kleinere Änderungen an der API

„Error“ besitzt ein neues „cause“-Property, mit dem sich Fehler verketten lassen. „Object.hasOwn“ ist ein kürzerer Alias für das lange „Object.prototype.hasOwnProperty.call“. Für „Deno.writeFile“ lässt sich ein Abort-Signal anmelden. Sobald es „writeFile“ empfängt, bricht es den Schreibvorgang ab. Das ist etwa nützlich, wenn der Schreibvorgang zu lange dauert.

„Deno.permissions“ unterstützt ergänzend zu Strings die Verwendung von URLs. Die neue Funktion „self.structuredClone“ hilft beim Message Passing zwischen Web Workers und MessagePort. Die WebSocketStream-Schnittstelle ist erstmals mit dabei und gilt noch als experimentell.

Sicherheit

Die Root-Zertifikate für TLS-Verbindungen kann Deno jetzt auch aus dem Zertifkatsspeicher des Betriebssystems holen. Das geschieht, wenn die neue Umgebungsvariable „DENO_TLS_CA_STORE=system“ gesetzt ist. Bislang vertraute Deno nur dem Store von Mozilla. Komplett abschalten lässt sich die Zertifikatsprüfung über den Parameter „–unsafely-ignore-certificate-errors“. Die Entwickler raten aber von ihrem Einsatz aus offensichtlichen Sicherheitsgründen ab.

HMAC Keys importieren und exportiert die Crypto-API über die neuen Funktionen „crypto.subtle.importKey()“ und „crypto.subtle.exportKey()“. Der Kollege „crypto.subtle.verify()“ prüft Signaturen, die auf Basis von HMAC Keys erzeugt wurden.

REPL

Der interaktive Modus, den „deno repl“ aktiviert, ignoriert das „export“-Schlüsselwort vor Funktionen. Zudem lässt sich über den Parameter „–eval“ schon JavaScript ausführen, bevor das Prompt erscheint.

Deno rief Ryan Dahl ins Leben, der auch schon zuvor Node.js erfand. Mit dem in Rust geschriebenen Deno möchte er einige Konstruktionsfehler von Node.js ausmerzen. Den JavaScript-Code führt dabei die V8-Engine aus, die unter anderem in Google Chrome steckt.

Sämtliche Neuerungen der Version 1.13 listen auch die Release Notes auf.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben