News

Async/Await: Nebenläufige Programmierung ab sofort auch mit Rust möglich

Rust 1.39.0 ist da. (Grafik: Shutterstock / Andrey Suslov)

Das Rust-Team hat heute planmäßig die Version 1.39 der Programmiersprache Rust veröffentlicht. Die neue Version unterstützt mit dem Async/Await-Pattern das Konzept der nebenläufigen Programmierung und schließt damit zu anderen Sprachen auf.

Dieses Konzept ermöglicht, asynchrone, nicht-blockende Funktionen so zu verwenden, als wären sie gewöhnliche synchrone Funktionen. So soll Programmen die Möglichkeit geboten werden, Code auszuführen, während anderer Code auf das Beenden einer laufenden Aufgabe wartet. Alternative Sprachen wie C#, Python, Kotlin oder JavaScript bieten diese Möglichkeit bereits seit längerem.

Syntax unterscheidet sich leicht von anderen Implementationen

Mit der stabilen Syntax des Sprach-Features soll es nun einfacher als bisher werden, Futures zu schreiben. Alle schon bestehenden Async-I/O-Laufzeitumgebungen des Rust-Ökosytems arbeiten inzwischen aktiv an den erforderlichen Änderungen, um das neue Pattern sauber zu unterstützen. Darunter finden sich unter anderem Tokio, async-std, wasm-bindgen-futures und hyper. Verschiedene Rust-Webframeworks arbeiten ebenfalls an der Implementation des Patterns.

Entwicklern, die das async/await-Konzept schon kennen, wird die Umsetzung bekannt vorkommen. Es gibt jedoch auch Unterschiede. So lautet die Syntax etwa future.await statt await future. Das passe besser zum ?-Operator von Rust für die Weitergabe von Fehlern, so Niko Matsakis vom Rust-Team im Blogbeitrag zur Ankündigung des Features.

Man könne auch future.await? schreiben, um auf das Ergebnis einer Future und die Weitergabe von Fehlern zu warten. Dieses Vorgehen vereinfache auch das Verketten von Methoden, so Matsakis.

Funktionalität unterscheidet sich ebenfalls leicht von anderen Implementationen

Ein weiterer Unterschied zwischen den Futures in Rust und denen in anderen Sprachen bestehe darin, dass sie bei Rust auf einem sogenannten „Poll“-Modell basieren. In anderen Sprachen würde durch das Aufrufen einer asynchronen Funktion sofort eine Future erstellt und für die Ausführung geplant. Das Warten auf die Future sei jedoch für die Ausführung nicht unbedingt erforderlich, und es bedeute einen gewissen Aufwand für jede Future.

Im Gegensatz dazu führe der Aufruf einer asynchronen Funktion in Rust nicht zu einer eigenständigen Planung. Dies bedeute, dass man sogar eine komplexe Zusammenstellung von Futures definieren könne, ohne dass ein großer Aufwand pro Future anfällt. Das indes könnte sich für Endnutzer langsam anfühlen.

Das Rust-Team ist jedenfalls überzeugt, dass Async/Await eine Schlüsselrolle für viele neue Entwicklungen mit Rust spielen wird.

Passend dazu: TypeScript, Rust und Kotlin: Warum die neuen Programmiersprachen voll im Trend sind

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Schreib den ersten Kommentar!

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung