Rust ist eine Programmiersprache, die Speicherfehler beim Übersetzen verhindert, ohne dafür Geschwindigkeit zu opfern.
- Rust
Eine kompilierte Programmiersprache, deren Übersetzer anhand fester Regeln über Besitz und Ausleihe von Daten nachweist, dass kein Speicherfehler auftreten kann.
Beispiel: „Der Übersetzer von Rust lehnt den Code ab, solange zwei Stellen zugleich schreibend auf dieselben Daten zugreifen.“Herkunft: Der Erfinder Graydon Hoare benannte sie nach einer Gattung Rostpilze, die er für bemerkenswert widerstandsfähig hielt.
Was der Übersetzer garantiert
Zu jedem Zeitpunkt gehören Daten genau einer Stelle im Programm. Wer sie weitergibt, gibt den Besitz ab oder leiht sie aus, und leihen darf entweder einer schreibend oder beliebig viele lesend. Diese Regeln prüft der Übersetzer, bevor das Programm überhaupt existiert.
Damit fallen die Fehlerklassen weg, die in C und C++ für einen großen Teil der Sicherheitslücken verantwortlich sind. Erkauft wird das mit einer steilen Lernkurve: Der Übersetzer lehnt anfangs vieles ab, was woanders durchginge.
Ohne Laufzeitkosten
Die Prüfungen finden beim Übersetzen statt, nicht beim Ausführen. Es gibt keine automatische Speicherbereinigung, die zwischendurch anhält, und keine virtuelle Maschine. Das fertige Programm ist so schnell wie eines in C.
Diese Verbindung aus Sicherheit und Geschwindigkeit erklärt, warum Rust inzwischen im Linux-Kern, in Browser-Bestandteilen und in Werkzeugen steckt, bei denen beides zählt.
Wo du ihr im Web begegnest
Vor allem in der Werkzeugkette. Mehrere verbreitete Bundler und Formatierer sind in Rust neu geschrieben worden und laufen dadurch um ein Vielfaches schneller als ihre Vorgänger.
Dazu kommt WebAssembly: Rust ist die Sprache, aus der am häufigsten dafür übersetzt wird, wenn im Browser etwas gerechnet werden soll, wofür JavaScript zu langsam wäre.