EMZETT.
Login

Kurz: Rust ist eine kompilierte, statisch typisierte Sprache ohne Laufzeitumgebung und ohne Garbage Collector. Die Ziele laut den Entwicklern: Sicherheit, Geschwindigkeit und Nebenläufigkeit (fearless concurrency).

Teil des Kurses Rust

Kapitel 1 von 13 im Kurs Rust (Abschnitt „Einstieg“). Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Rust ist eine kompilierte, statisch typisierte Sprache ohne Laufzeitumgebung und ohne Garbage Collector. Die Ziele laut den Entwicklern: Sicherheit, Geschwindigkeit und Nebenläufigkeit (fearless concurrency).

Warum Rust?

Problem in C/C++Lösung in Rust
Zeiger auf freigegebenen Speicher (use after free)Der Compiler verhindert es durch Ownership und Lebensdauern
PufferüberläufeIndexzugriffe werden geprüft
Datenwettläufe bei ThreadsDer Compiler lehnt sie ab
null-ZeigerEs gibt kein null, nur Option<T>
Ausnahmen, die man vergisstFehler sind Werte (Result<T, E>)
Speicherlecks durch vergessenes freeSpeicher wird automatisch freigegeben, wenn der Besitzer endet

Das Ergebnis: Ein Programm, das übersetzt, ist frei von ganzen Fehlerklassen. Der Preis ist eine steile Lernkurve, weil der Compiler streng ist. Dafür sind die Fehlermeldungen berühmt gut.

Werkzeuge

WerkzeugZweck
rustupInstallation und Versionen
rustcCompiler
cargoBuild-Werkzeug und Paketmanager
crates.ioPaketverzeichnis (“Crates”)
clippyLinter für besseren Code
rustfmtFormatierer
rust-analyzerSprachserver für Editoren
cargo new hallo          # neues Projekt (Ordner mit Cargo.toml und src/main.rs)
cargo run                # bauen und starten
cargo build --release    # optimiert bauen
cargo test               # Tests ausführen
cargo check              # nur prüfen, schnell
cargo add serde          # Abhängigkeit hinzufügen
cargo fmt, cargo clippy  # formatieren, prüfen

Dein erstes Programm

main.rs

fn main() {
    println!("Hallo, Welt!");
}

Ausgabe:

Hallo, Welt!
  • fn main() ist der Einstiegspunkt
  • println! ist ein Makro (erkennbar am !), nicht eine Funktion
  • Anweisungen enden mit ;

Fehlermeldungen des Compilers

Rust-Fehlermeldungen erklären das Problem und schlagen oft die Lösung vor:

fn main() {
    let x = 5;
    x = 6;
    println!("{x}");
}

Fehlermeldung:

error[E0384]: cannot assign twice to immutable variable `x`

Der Compiler zeigt die Zeile, erklärt “Variablen sind standardmäßig unveränderlich” und schlägt let mut x = 5; vor.

Wo wird Rust eingesetzt?

  • Systeme: Teile von Linux, Windows, Android; Dateisysteme, Treiber
  • Web: Server (Axum, Actix), WebAssembly im Browser
  • Werkzeuge: ripgrep, fd, bat, Deno, Cargo selbst
  • Infrastruktur: Cloudflare, AWS (Firecracker), Discord
  • Eingebettete Systeme: Mikrocontroller ohne Betriebssystem

Merke

  • Rust = Geschwindigkeit wie C + Speichersicherheit durch Ownership, ohne Garbage Collector
  • Es gibt kein null und keine Ausnahmen: Option und Result
  • cargo baut, testet und verwaltet Pakete; rustc ist der Compiler
  • Variablen sind standardmäßig unveränderlich
  • Die Compilermeldungen sind ein Lehrer

Quiz zur Selbstkontrolle

Weiter im Kurs

Weiter: Variablen, Typen und Ausgabe

Alle Kapitel: Rust im Überblick