Zum Inhalt springen

Nächste Schritte in Rust

Wenn du die Themen dieses Kurses durchgearbeitet hast, kannst du schon genug Rust, um echte Programme zu schreiben: Variablen, Kontrollfluss, Funktionen, Ownership (Eigentum), Borrowing (Ausleihen), Collections, Module, Fehlerbehandlung, Traits (Eigenschaften), Generics und sogar Threads, Smart Pointer, unsafe und Makros. Das ist wirklich das meiste von dem, was du im Alltag brauchst. Was jetzt noch fehlt, ist vor allem Übung – und das Wissen über einzelne Bibliotheken, das du dir holst, sobald du es brauchst.

Am schnellsten lernst du ab hier, wenn du dir ein kleines Projekt suchst und ein paarmal daran hängen bleibst. Auf dieser Seite gibt es fünf angeleitete Projekte für den Einstieg:

  • Ratespiel – das klassische erste Rust-Projekt: Eingabe, Schleifen und match.
  • Wortzähler – lies eine Textdatei ein und zähle die Wörter mit einer HashMap.
  • To-do-Liste – übe Vec, struct, enum und das Speichern in einer Datei.
  • CLI-Tool mit clap – ein echtes Kommandozeilen-Tool mit Unterbefehlen und --help.
  • Web-API mit Axum – ein JSON-API-Server, gebaut auf async/await.

Wenn du die geschafft hast, versuch dich an einem eigenen:

  • Ein einfacher Taschenrechner – übe match, Result und den Umgang mit falschen Eingaben.
  • Ein Leser für JSON-Konfigurationen – lade Einstellungen aus einer Datei mit Serde.
  • Ein kleiner Web-Scraper oder API-Client – ruf mit reqwest eine URL ab, auf Basis von async/await.

Du weißt noch nicht, welche Art von Programm du bauen willst? Die Seiten unter „Was du bauen kannst“ zeigen, wo Rust stark ist und welche Crates man dafür benutzt: Netzwerkprogrammierung, Datenbanken, Desktop-Apps mit GUI, Spiele und Mikrocontroller.

Du willst erst noch kleinere Übungen? Arbeite die Rust-Übungen durch oder teste dich mit den Interviewfragen zu Rust.

Das Paket-Ökosystem von Rust (Crates, verteilt über crates.io) deckt fast alles ab, wofür du eine Bibliothek suchen würdest. Ein paar davon begegnen dir ständig:

Jedes davon fügst du mit cargo add <Crate-Name> zu deinem Projekt hinzu – einen extra Paketmanager brauchst du nicht. Auf der Seite Cargo und Crates erfährst du, wie das funktioniert und wie du ein gutes Crate auswählst. Die Dokumentation dieser Crates gibt es nur auf Englisch.

Dieser Kurs geht weiter als die meisten Einsteiger-Tutorials – mit Themen wie Smart Pointern, Threads und Channels, async/await, Unsafe Rust, C-Code aufrufen (FFI), WebAssembly und eigenen macro_rules!-Makros. Ein paar tiefere Themen haben eigene Seiten, für den Moment, in dem du so weit bist:

  • Prozedurale Makros – der mächtigere (und kompliziertere) Verwandte der macro_rules!-Makros von der Seite Makros in Rust. Sie stecken unter der Haube hinter #[derive(Debug)] und Ähnlichem.
  • no_std / Embedded Rust – Rust ohne die Standardbibliothek schreiben, für Mikrocontroller und andere Umgebungen mit wenig Ressourcen

Nichts davon brauchst du, um nützlichen Rust-Code zu schreiben. Es lohnt sich aber zu wissen, dass es diese Dinge gibt – und sie zu lernen, sobald du auf ein Problem stößt, das sie wirklich braucht.

  • Die Programmiersprache Rust – die deutsche Übersetzung des Rust-Buchs. Lies es jetzt noch einmal, wo die Grundlagen sitzen; vieles ergibt beim zweiten Mal mehr Sinn.
  • Rust by Example (auf Englisch) – noch mehr kommentierter Code zum Lesen
  • Rustlings (auf Englisch) – kleine Übungen, die du direkt in deinem Terminal reparierst
  • This Week in Rust (auf Englisch) – ein wöchentlicher Newsletter, der zeigt, was die Community gerade baut

Du wirst weiterhin auf Compiler-Fehler stoßen, die dich verwirren. Das ist normal – das passiert auch Leuten, die seit Jahren Rust schreiben, nicht nur Anfängern. Der Unterschied, den Erfahrung macht, ist nicht, dass die Fehler aufhören. Du wirst nur schneller darin, sie zu lesen. Schreib weiter Code, lies weiter, was dir der Compiler sagt, und es wird immer leichter.

Viel Erfolg – und danke, dass du bis hierher drangeblieben bist. 🦀

Kurzer Check

1. Welches Crate wird hier zum Lesen und Schreiben von JSON empfohlen?

2. Welches Crate wird für asynchrone Programmierung genannt?

3. Welches dieser Themen nennt die Seite als NICHT behandelt?

Punkte: 0 / 3