Perl-Webframework: Mojolicious 9.0 führt async/await ein
Außerdem haben die Entwickler etliche Anpassungen vorgenommen, durch die sich das Webframework besser in Container- und Cloud-Szenarien einsetzen lässt.
- Alexander Neumann
Das Perl-Framework Mojolicious wird damit beworben, ein Echtzeit-Webframework zu sein, das mit WebSockets-Unterstützung und nichtblockierenden beziehungsweise asynchronen Fähigkeiten aufwartet. Letzte Woche ist das Framework in Version 9.0 freigegeben worden.
Das neue Release ist unter dem Codenamen "Waffle" entstanden und setzt nun die Version 5.16 der Programmiersprache Perl voraus, es ist jedoch geplant, in naher Zukunft auf Perl 5.20 umzusteigen. Der Umstieg auf Perl 5.16 bedeutet neue Werkzeuge, einschließlich des __SUB__
-Tokens, mit denen sich eine Referenz zur aktuellen Koroutine zurückgeben lässt, wodurch sich rekursive Funktionen einfacher schreiben lassen.
Als Highlight der 9.0-Entwicklung darf womöglich die Integration des async/await-Musters gelten. Mojolicious kann bei Installation des Moduls Future::AsyncAwait die Schlüsselwörter async
und await
verwenden, um eine möglichst nahtlose asynchrone Entwicklung zu ermöglichen. Das Muster ist in den vergangenen Jahren zunehmend zum Standard für asynchronen Code auch in anderen Programmiersprachen wie C#, Python und JavaScript geworden.
Bereit für das Containerisierungszeitalter
Außerdem enthält Mojolicious neue Funktionen, die bei der Bereitstellung in Anwendungs-Containern und Cloud-Diensten helfen sollen. Es handelt sich zum einen um Unterstützung für Deployment-spezifische Plug-ins, mit denen sich bestehende Anwendungen um Funktionen auf Deployment-Ebene erweitern lassen. Der sogenannte Deployer hat hierbei die Kontrolle über diese Funktionen, Anwendungsentwickler müssen offenbar nicht mehr selbst eingreifen.
Zum anderen wurde die Reverse-Proxy-Unterstützung erweitert, um mehrere vertrauenswürdige Proxys zu ermöglichen, insbesondere wenn man die erwartete IP-Adresse oder das CIDR-Netzwerk kennt, von dem Proxy-Anfragen erwartet werden. Das kann beispielsweise beim Deployment von Kubernetes nützlich sein, wo es wahrscheinlich ist, dass mehrere Schichten lokaler Proxys eingesetzt werden.
Neu ist auch der NotYAMLConfig, er ergänzt die bestehenden Perl- und JSON-Konfigurations-Loader um einen für YAML-Dateien. Und es gibt nun mit myapp generate dockerfile
eine Möglichkeit, ein Dockerfile zu erzeugen. Des Weiteren wurde ein Container Cookbook Recipe in die Dokumentation aufgenommen, ein weiteres "Rezept" gibt es nun auch für den Cloud-nativen Proxy Envoy.
Zu guter Letzt haben die Entwickler den Router sicherer gemacht und offenbar stärker an den Erwartungen der Benutzer ausgerichtet, und Mojolicious ist nun in der Lage, einen kontextbezogenen Logger sinnvoll zu nutzen.
Dass es sich hier nur um eine Auswahl handelt, verdeutlichen die Ankündigung im Mojolicious-Blog und das Changelog zum neuen Release.
(ane)