Rust 1.85 veröffentlicht: Überblick über die wichtigsten Neuerungen und Verbesserungen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Rust 1.85 veröffentlicht: Was sich in der neuen Version geändert hat



Das Rust-Entwicklerteam hat ein weiteres stabiles Update der Sprache vorgestellt – Version 1.85. Dieses Release bringt eine Reihe lang erwarteter Funktionen, die das Schreiben von asynchronem Code vereinfachen, die Leistung verbessern und das Entwickler-Werkzeugset erweitern. Betrachten wir die wichtigsten Änderungen.



Stabilisierung von async closures

Eines der Hauptereignisse war die Stabilisierung von async closures – Closures, die asynchron sein können. Bisher musste man für die Rückgabe einer asynchronen Closure manuell komplexe Signaturen mit impl Future schreiben. Jetzt unterstützt der Compiler die Syntax:

  • async || { ... } – direkte Deklaration einer asynchronen Closure.
  • Automatisches Schließen von Variablen mit Lifetime-Unterstützung.
  • Kompatibilität mit den Traits FnOnce, FnMut und Fn.

Dies vereinfacht das Schreiben asynchroner Event-Handler, Middleware und Callback-Funktionen in Web-Frameworks (z. B. Axum oder Actix).



Verbesserter Borrow Checker

In Rust 1.85 wurde der Borrow Checker erheblich verbessert. Er versteht jetzt besser Fälle, in denen eine Variable nach einer teilweisen Verschiebung verwendet wird:

  • Es ist erlaubt, einzelne Felder einer Struktur auszuleihen, auch wenn andere Felder bereits verschoben wurden.
  • Die Behandlung von verschachtelten Ausleihen in Iteratoren wurde verbessert.
  • Die Anzahl der falschen Warnungen in Code mit bedingten Konstrukten wurde reduziert.

Dies ist besonders nützlich bei der Arbeit mit großen Datenstrukturen, bei denen ein teilweiser Besitz erforderlich ist.



Neue Makro-Funktionen

Das Release beinhaltet eine Erweiterung des Makrosystems (proc macros):

  • Unterstützung für Token Streams mit der Möglichkeit, Positionen im Quellcode zu ändern, wurde hinzugefügt.
  • Die Erstellung von Attribut-Makros für Strukturen und Enumerationen wurde vereinfacht.
  • Die Fehlerbehandlung innerhalb von Makros wurde verbessert – Nachrichten werden jetzt mit genauer Angabe der Zeile im Benutzercode angezeigt.

Dies wird die Entwicklung von Bibliotheken für Serialisierung (serde), Web-Routing und Codegenerierung flexibler machen.



Compiler-Optimierung und Verbesserungen in Cargo

Die Entwickler haben die Arbeit an der Kompilierungsleistung fortgesetzt:

  • Die inkrementelle Kompilierung für große Projekte wurde beschleunigt (bis zu 15 % schneller).
  • In cargo check wurde die Unterstützung für die parallele Analyse von Abhängigkeiten hinzugefügt.
  • In cargo build wurde die Zwischenspeicherung von Zwischenartefakten verbessert.

Außerdem gibt es in cargo einen neuen Befehl cargo info, der detaillierte Informationen über ein Paket aus der Registry anzeigt (Versionen, Abhängigkeiten, Lizenz), ohne es herunterladen zu müssen.



Sicherheitskorrekturen und Stabilität

In Version 1.85 wurden mehrere Schwachstellen im Zusammenhang mit der Verarbeitung von unsicherem Code (unsafe) geschlossen. Fehler bei der Speicherverwaltung bei Verwendung von std::mem::transmute und MaybeUninit wurden behoben. Das Rust-Team empfiehlt allen Benutzern, ein Update durchzuführen, um die Sicherheit ihrer Projekte zu gewährleisten.



So aktualisieren Sie

Das Update ist über den offiziellen Installer rustup verfügbar. Um die neue Version zu installieren, führen Sie den folgenden Befehl aus:

Empfohlene Bibliotheken