Ferris Talk #4: Asynchrone Programmierung in Rust

Seite 4: Futures, Runtimes, Executors: für asynchrones Programmieren gerüstet

Inhaltsverzeichnis

Der kleine Exkurs in Sachen Futures und Asynchronität in Rust soll vor allem eines veranschaulichen: Rust bietet Syntax und Primitives, um für asynchrone Programmierung gerüstet zu sein. Allerdings bedarf es einer Laufzeitumgebung, die zusätzlich zu installieren ist, um tatsächlich etwas damit anzufangen.

Diese Laufzeitumgebung ist nicht in Rust enthalten. Tokio, async-std oder glommio sind einige Beispiele unterschiedlicher Implementierungen asynchroner Laufzeitumgebungen. Entwickler und Entwicklerinnen haben hier die Qual der Wahl.

Tokio gilt als populärste asnychrone Runtime und ist der Platzhirsch, wenn es hauptsächlich um Netzwerkapplikationen geht. Wer sich mit Microservices, Web-Frameworks und Cloud-Anwendungen auseinandersetzt, kommt an Tokio und dem gesamten Stack nicht vorbei. Async-std hat sich zum Ziel gesetzt, die zugänglichste asynchrone Runtime zu sein, die vollständige Äquivalente zur bestehenden Rust-Standardbibliothek anbietet. Glommio ist noch relativ neu in der Riege der asynchronen Rust-Runtimes und baut auf die Linux-Kernel-Schnittstelle io_uring auf. Für andere Architekturen ist das ungeeignet, aber dafür auf Linux potenziell schneller.

In der Theorie funktioniert der hier geschriebene Programmcode mit jeglicher Runtime, solange man nicht die speziellen Features der jeweiligen Bibliotheken nutzt. Das erlaubt es auch, die für den eigenen Anwendungsfall beste Laufzeitumgebung auszuwählen. Auf limitierter Hardware ist das eventuell eine andere als für Netzwerkanwendungen, die in der Cloud laufen.

Apropos: Für das Cloud-Szenario ist Tokio prima geeignet. Dazu konnten Interessierte sich im Rahmen der betterCode() Rust umfassend informieren, und wenn noch Fragen offen sind, gerne auch bei mir privat. Oder ihr geduldet euch bis zu einem der folgenden Ferris Talks, wenn wir uns die Tokio-Runtime genauer ansehen.

Ferris Talk – Neuigkeiten zu Rust. Die Kolumnisten:
Stefan Baumgartner, Dynatrace.at, Rust Meetup Linz, Autor der Ferris Talks, der Kolumne über die Programmiersprache Rust bei Heise Developer

Stefan Baumgartner, Autor von Ferris Talk #4

lebt und arbeitet als Software-Architekt und Entwickler bei Dynatrace im österreichischen Linz mit Schwerpunkt auf Webentwicklung, Serverless und Cloud-basierte Architekturen.

Für den Smashing Magazine Verlag veröffentlichte er 2020 mit “TypeScript in 50 Lessons” sein zweites Buch, seine Onlinepräsenz fettblog.eu enthält Artikel, Tutorials und Guides zum Thema TypeScript, Rust, React, und Software Engineering im Allgemeinen.

Stefan organisiert Meetups und Konferenzen, wie Stahlstadt.js, die DevOne, ScriptConf, Rust Meetup Linz, und das legendäre Technologieplauscherl. Außerdem ist er regelmäßig Gastgeber im Working Draft, dem deutschsprachigen Podcast über Webtechnologien. Wenn noch ein wenig Freizeit bleibt, genießt er italienische Pasta, belgisches Bier und britischen Rock.

(sih)