Buchkritik: Async Rust
Mit Rust asynchrone Funktionen zu programmieren, bringt Tempo, ist aber streckenweise knifflig. Maxwell Flitton und Caroline Morton helfen beim Verstehen.
- Maik Schmidt
Träge laufende Anwendungen gleichen verstopften Verkehrswegen: Ein Prozess blockiert den anderen, Beteiligte müssen aufeinander warten. Asynchrone Funktionen vermeiden diesen Effekt, indem sie etwa bei verzögerten Netzwerkzugriffen die Kontrolle direkt an den Aufrufer zurückgeben, ohne zu warten. Erst wenn alle Daten vorliegen, die sie braucht, macht die unterbrochene Funktion mit ihrer Arbeit weiter. In der Zwischenzeit können andere Funktionen die CPU nutzen. Das steigert den Durchsatz.
Maxwell Flitton und Caroline Morton wenden sich mit ihrem englischsprachigen Leitfaden an erfahrene Rust-Programmierer, die mit Schlüsselwörtern wie async/await vertraut sind und auch die Tokio-Bibliothek bereits kennen. Die Autoren erklären nämlich nicht etwa, wie man diese Werkzeuge anwendet, sondern wie diese hinter den Kulissen funktionieren und als Basis für asynchrone Systeme dienen können.
Schnell implementieren Flitton und Morton eigene asynchrone Queues und eine dazugehörige Laufzeitumgebung. Dieser Umgebung spendieren sie sogar Netzwerkfunktionen und gehen dabei in die unterste Ebene: Sie programmieren Sockets mit der mio-Bibliothek und zeigen, wie man die eigene Implementierung anstelle von Tokio einsetzen kann. Etwas leichtgewichtiger geht es bei den Co-Routinen zu, aber auch dort ist nicht deren Anwendung im Blick, sondern die interne Funktionsweise.
Um reaktive Programmierung zu demonstrieren, verwenden die Autoren einen Heizkreislauf. Dazu bauen sie einen eigenen Event-Bus. Weiter geht es mit bekannten Entwurfsmustern zur nebenläufigen Programmierung. Zum Thema Aktoren dient ein rudimentärer Key-Value-Store à la Redis als Beispiel. Als Höhepunkt der Beispielprojekte im Buch entsteht schließlich ein eigenständiger asynchroner Server.
Obwohl es in gut verständlichem Englisch gehalten ist, eignet sich dieses Buch nicht für Einsteiger, sondern eher für fortgeschrittene Rust-Praktiker. Ärgerlich sind die zahlreichen kleinen Fehler im Text und leider auch im Code. Auf der Website des O’Reilly-Verlags finden sich glücklicherweise Berichtigungen.
Maxwell Flitton, Caroline Morton
Async Rust
Unleashing the Power of Fearless Concurrency
- O’Reilly Media, Inc., Sebastopol (US-CA) 2024
- ISBN 978-1098149093
- 250 Seiten, 40 €
- (PDF-/Epub-/Kindle-E-Book: 30–50 €)
Videos by heise
(psz)