Die Stabilisierung geht weiter

Rust 1.7 stabilisiert Bibliotheksfunktionen und -methoden

Michael Thomas

© Shutterstock/Oleksii Fedorenko

Rust 1.7 setzt den mit Rust 1.6 – dessen Hauptfeature in der Stabilisierung der Kern-Bibliothek libcore bestand – gesetzten Kurs fort: Die Rust-Entwickler vermelden, dass ab sofort rund 40 Bibliotheksfunktionen und -methoden als stabil betrachtet werden können.

In früheren Rust-Versionen nutzten alle Hashtabellen in Rust den Hash-Algorithmus SipHash, der zwar standardmäßig Schutz vor DoS-Attacken bietet, im Falle kleiner Schlüssel jedoch vergleichsweise langsam hasht. Für alle Nutzer, die den Verlust des DoS-Schutzes verschmerzen können, steht nun der Hash-Algorithmus Fowler-Noll-Vo (FNV) bereit, der bei derartigen Inputs deutlich besser abschneidet und somit einen beträchtlichen Geschwindigkeitsschub realisierbar machen soll.

Des Weiteren steht mit <[T]>::clone_from_slice() eine neue, Effizienz versprechende Möglichkeit zur Verfügung, um Daten von einem Slice zum anderen zu kopieren. Zudem erhielt das im Rahmen des Foreign-Function-Interface-Mechanismus genutzte CString einige Verbesserungen spendiert.

Auch der Package-Manager Cargo wartet im Zuge von Rust 1.7 mit einem kleineren Update auf. So versorgen etwa die Build-Skripte Cargo künftig mit präzisen Informationen über Abhängigkeiten, wodurch sichergestellt werden soll, dass sie nur dann erneut ausgeführt werden, wenn diese sich ändern.

Sämtliche Änderungen von Rust 1.7 können, im Detail, den offiziellen Release Notes entnommen werden.

Was ist Rust?

Rust ist als Systemsprache konzipiert, die als Konkurrent für C und C++ – aber auch zu Googles Go – gesehen werden kann. Die Syntax ist stark an C angelehnt, enthält aber moderne Konstrukte, um invalide Speicherzugriffe zu verhindern und Multicore-Architekturen besser zu unterstützen.
Zu den Charakteristika der Sprache gehören Pattern Matching und algebraische Datentypen (enums), Typeninferenz, Higher-order Functions (Closures), Generics und Polymorphismus in Form von Java-artigen Interfaces in Kombination mit Haskell-artigen Typen-Klassen (traits).

Unterstützt werden sowohl funktionale als auch objektorientierte Programmierweisen. Nebenläufigkeit wird durch leichtgewichtige Tasks realisiert, wie sie beispielsweise in Erlang oder anderen Aktoren-basierten Sprachen anzutreffen sind. Seit 2011 werden Rust-Programme mit dem selbst in Rust geschriebene Compiler rustc kompiliert, welcher wiederum auf LLVM als Backend-Technologie zurückgreift.

Aufmacherbild: Corroded white metal background von Shutterstock / Urheberrecht: Oleksii Fedorenko

Verwandte Themen:

Geschrieben von
Michael Thomas
Michael Thomas
Michael Thomas studierte Erziehungswissenschaft an der Johannes Gutenberg-Universität Mainz und arbeitet seit 2013 als Freelance-Autor bei JAXenter.de. Kontakt: mthomas[at]sandsmedia.com
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: