Rust | |
---|---|
Basisdaten | |
Paradigmen: | multiparadigmatisch (generisch, nebenläufig, funktional, imperativ, strukturiert) |
Erscheinungsjahr: | 2010; erste stabile Version 2015 |
Designer: | Graydon Hoare |
Entwickler: | Mozilla[1], Graydon Hoare[1][2], Rust-Stiftung[3] |
Aktuelle Version | 1.84.0[4] (9. Januar 2025) |
Typisierung: | stark, statisch, affin,[5] Typinferenz |
Beeinflusst von: | Alef[6], C++[6], C#[6], Cyclone[6], Erlang[6], Haskell[6], Limbo[6], Newsqueak[6], Objective CAML[6], Ruby[6], Scheme[6], Standard ML[6], Swift[6] |
Betriebssystem: | Linux, macOS, Windows, FreeBSD, Android, iOS[7] und weitere[8][9] |
Lizenz: | Apache-Lizenz, Version 2.0[10][11], MIT-Lizenz[10][11] |
www.rust-lang.org |
Rust ist eine Multiparadigmen-Systemprogrammiersprache, die von der Open-Source-Community entwickelt wird und unter anderem von Mozilla Research gesponsert ist.[12] Sie wird mit dem Ziel entwickelt, sicher, nebenläufig und praxisnah zu sein.[13] Sicherheit bezieht sich dabei insbesondere auf die Vermeidung von Programmfehlern, die zu Speicherzugriffsfehlern oder Pufferüberläufen und damit unter Umständen auch zu Sicherheitslücken führen, vor allem auch in nebenläufigen Prozessen. Im Gegensatz zu anderen Programmiersprachen mit automatischer Speicherverwaltung verwendet Rust hierfür keine Garbage Collection, sondern ein besonderes Typsystem. Dessen Typsicherheit wurde formal bewiesen.[14]
Rust vereint Ansätze aus verschiedenen Programmierparadigmen, unter anderem aus der funktionalen, der objektorientierten und der nebenläufigen Programmierung und erlaubt so ein hohes Abstraktionsniveau. Beispielsweise gibt es in Rust algebraische Datentypen, Pattern Matching, Traits (ähnlich den Typklassen in Haskell), Closures sowie Unterstützung für RAII. Die Sprache wurde so entworfen, dass die Kosten der Abstraktionen zur Laufzeit so gering wie möglich bleiben können (zero-cost abstractions), um eine mit C++ vergleichbare Performanz zu erreichen.[15]