An der Werkbank
Hier bauen wir gemeinsam. Du tippst mit, ich sage dir, was du siehst und warum.
Band 1 · Rust 1.99 · iced 0.14
Du tippst, ich erkläre, wir probieren aus und lernen auch aus Fehlern. Ohne Vorkenntnisse zum eigenen Programm mit Fenster, gespeicherten Daten und Installer für Windows, macOS und Linux.
Warum dieses Buch
Rust ist streng. Aber Strenge ist eine Hilfe, wenn sie jemand erklärt und den Weg mit dir geht. Genau das macht dieses Buch.
Rust ist am Anfang strenger und anstrengender als andere Sprachen. Du wirst dich manchmal über den Compiler ärgern. Dieses Buch bringt dir bei, seine Meldungen zu lesen. aus „Bevor wir anfangen“
Du bekommst keine fertigen Programme zum Abtippen. Jedes Kapitel startet mit fast nichts, du lässt es laufen, veränderst etwas und siehst sofort, was passiert. So wächst das Programm Schritt für Schritt.
Die Methode
Du weißt immer, wo du gerade stehst: An der Werkbank, Hinschauen, Stolperstelle, Jetzt du, Ehrlich gesagt und Ins Werkzeugfach.
Hier bauen wir gemeinsam. Du tippst mit, ich sage dir, was du siehst und warum.
Kurz stehen bleiben und begreifen, was gerade passiert ist, bevor es weitergeht.
Wir provozieren absichtlich einen Fehler. Fehlermeldungen sind in Rust keine Strafe, sondern ein Gespräch mit dem Compiler.
Eine kleine Aufgabe zum Alleinprobieren. Die Lösung steht im Anhang, aber erst nach deinem Versuch.
Wo Rust unbequem ist, steht das da. Mit Begründung, warum es trotzdem Sinn ergibt.
Die Kurzfassung zum Merken am Kapitelende, zusätzlich gesammelt als Cheat-Sheet im Anhang.
Das Werkstück
Theorie bleibt hängen, wenn sie gleich gebraucht wird. Deshalb wächst das Wissen an Projekten, die sich benutzen lassen.
Dein erstes vollständiges Programm: Eingabe, Entscheidungen, Schleifen und Fehlerbehandlung.
Vom leeren Fenster zu Zähler, Eingabefeldern, Schaltern, mehreren Ansichten und langen Listen.
Erst mit Filter, dann mit Speicherung, sodass beim nächsten Start alles wieder da ist.
Ein kleines Spiel mit Zeitdruck, das sich über das ganze Buch weiterentwickelt: läuft weich, in Wellen, mit Stammkundschaft.
Ein Kochbuch mit Vorratsschrank, das mit jedem Teil mitwächst und am Ende im Fenster mit Suche, Portionen-Regler und Einkaufsliste läuft.
Release-Fassung, Icons, App-Bündel und Disk-Image für macOS, Installer für Windows und Linux, automatische Builds.
So fühlt sich das an
Jeder Begriff wird beim ersten Auftreten erklärt: Quelltext, Compiler, Terminal, Prompt. Vorausgesetzt wird nur, dass du eine Datei speichern und ein Programm starten kannst.
Das Beispiel rechts stammt aus Kapitel 2 („Hallo, Rust!“) und zeigt das Tempo: kleine Schritte, die sofort etwas sichtbar machen.
fn main() {
let name = "Volker Daehn";
let beruf = "Tischler";
let ort = "Hamburg";
println!("+------------------------+");
println!("| {name}");
println!("| {beruf}");
println!("| {ort}");
println!("+------------------------+");
}
Inhalt
Klick dich durch den Plan. Jeder Teil baut auf dem vorherigen auf.
Werkzeug einrichten, Variablen, Zahlen, Schleifen, Funktionen, Structs, Enums, erster Kontakt mit Ownership, Option und Result. Dazu Zahlenraten im Terminal und das erste Fenster.
Wie iced denkt, Zähler, Layout, Eingabe, Auswahl-Widgets, mehrere Ansichten, lange Listen. Gesellenstück: eine To-Do-Liste mit Filter.
Fenster einrichten, Zeit und Tasten, Warten ohne Einfrieren, Farben und Themes. Die To-Do-Liste bekommt ein Gedächtnis.
Programm auf mehrere Dateien verteilen, eigene Zeichnungen mit canvas, Fehler, die Nutzer verstehen, Programm weitergeben. Feierabend-Projekt: Küchenstress.
Das Rezeptbuch entsteht: Zahlen und Mengen, Text, Urteile, Sammlungen, Rezept und Vorrat als eigene Typen.
Das Herz von Rust: Stack und Heap, Ownership in der Tiefe, Verweise, Slices, Lebenszeiten und die ehrliche Frage, wann clone() okay ist.
Absturz oder Rückgabe, das Fragezeichen, eigene Fehlertypen, Umwandlung mit From.
Traits, derive, Generics, Schranken, Trait-Objekte, Operatoren überladen, Newtype-Muster.
Closures in der Tiefe, der Iterator-Trait, Adapter und Verbraucher, eigene Iteratoren.
Box, Drop und Deref, Rc, Cell und RefCell, Cow. Das Rezeptbuch bekommt Teilrezepte.
Threads, Kanäle, Arc und Mutex, Atomics und ein erster Blick auf async.
Module, Pakete und Workspaces, Features, Tests, Dokumentation, clippy und rustfmt.
Dateien und Pfade, Terminal-Ein- und Ausgabe, Kommandozeile, Datenformate mit serde, Datum und Zeit, Protokollierung. Feierabend-Projekt: die Bestenliste.
Eigene Makros, Standard-Makros, prozedurale Makros, unsafe und Fremdfunktionen mit C.
Alles kommt zusammen: Plan und Modell, Liste, Detail und Tabelle, Portionen-Regler, Suchen und Filtern, Einkaufen und Kochen.
Release-Fassung, Speicherorte, Icons für drei Systeme, macOS-Bündel und Signatur, Windows und Linux, Versionen und automatische Builds.
Passt das zu dir?
Mehr von der Rust-Werkstatt
Das Buch ist das Herzstück. Drumherum wächst auf rust-werkstatt.de, was du zum Weitermachen brauchst, und das meiste davon kostenlos.
Hier bauen wir zusammen echte Programme, von der leeren Datei bis zum fertigen Werkzeug oder Spiel. Erst überlegen wir, was als Nächstes kommt und worauf wir achten müssen, dann tippen wir es ein und schauen, ob es läuft. Jede Etappe baut auf der vorigen auf, am Ende steht der komplette Code zum Vergleichen.
Der Einstieg · 6 Etappen · komplett
Ebbe im Wattenmeer: Unter dem Sand verstecken sich Krebse, und nur die Zahlen verraten, wo. Unser Minesweeper, gebaut in sechs gemütlichen Etappen mit gut 300 Zeilen Code. Der wichtigste Krebs ist Ferris, das Rust-Maskottchen.
Zum Projekt →
13 Etappen · Netzwerk · komplett
Ein FTP/SFTP-Client im Look des Norton Commander: links dein Rechner, rechts der Server, dazwischen fährt der Fährmann deine Dateien hin und her.
Für Fortgeschrittene · 10 Etappen · komplett
Hotelketten gründen, Aktien kaufen, die Konkurrenz schlucken: ein Wirtschaftsspiel mit drei Computergegnern vom Touristen bis zum Hai. Die Iso-Grafik entsteht komplett aus Rust-Code, ohne eine einzige Bilddatei. Läuft als Desktop-App auf Linux, macOS und Windows.
Zum Projekt →Ganz neu bei iced? Der Wattläufer ist der sanfteste Einstieg, jedes Projekt funktioniert aber auch für sich allein. Alle Werkstatt-Projekte ansehen →
Zwei Kommandos, die in praktisch jedem Rust-Projekt zur Grundausstattung gehören, aber unterschiedliche Aufgaben haben: Das eine formatiert deinen Code, das andere liest ihn und macht Verbesserungsvorschläge. Die Notizen sind kurze Beobachtungen zu Compiler-Eigenheiten, Sprach-Neuerungen und nützlichen Werkzeugen, ohne festen Rhythmus.
// vorher
fn restenergie(kapazitaet:f64,verbrauch_pro_stunde:f64,stunden:f64)->f64{
kapazitaet-verbrauch_pro_stunde*stunden}
// nachher
fn restenergie(kapazitaet: f64, verbrauch_pro_stunde: f64, stunden: f64) -> f64 {
kapazitaet - verbrauch_pro_stunde * stunden
}
Die Einleitung „Bevor wir anfangen“ und das komplette Kapitel 2 „Hallo, Rust!“: dein erstes Rust-Programm, inklusive absichtlichem Fehler.
Leseprobe lesen →Die kleinen Rustlings-Übungen, ins Deutsche übersetzt. Zum Üben in kleinen Häppchen, während das Buch beim Verstehen hilft.
Auf GitHub ansehen →Das Buch
Das Buch erscheint zuerst über tolino media. Die Entscheidung ist eine Frage der Gewohnheit: Am Bildschirm tippt es sich bequemer mit, auf Papier lässt sich gut blättern.
Erscheint in Kürze
Erscheint in Kürze
Ausblick · Band 2
Band 1 legt das Fundament: die Sprache, das Denken in Besitz und Ausleihen und die ersten Fenster mit iced. Band 2 baut darauf auf und setzt für die grafische Oberfläche auf Dioxus.
Dioxus beschreibt eine Oberfläche als Komponenten, der Zustand liegt in sogenannten Signals. Die Sprache bleibt dieselbe Rust, die du aus Band 1 kennst. Nur die Art, ein Fenster zu beschreiben, ist eine andere.
Geplante Themen (Stand heute)
Erscheinungstermin und endgültiger Umfang stehen noch nicht fest. Aktuelles gibt es hier auf rust-werkstatt.de.
use dioxus::prelude::*;
fn main() {
dioxus::launch(App);
}
#[component]
fn App() -> Element {
let mut count = use_signal(|| 0);
rsx! {
h1 { "Zähler: {count}" }
button { onclick: move |_| count += 1, "Hoch" }
button { onclick: move |_| count -= 1, "Runter" }
}
}
Häufige Fragen
Nein. Du solltest wissen, wie man eine Datei speichert und ein Programm startet. Alles andere, vom Terminal bis zum Compiler, wird erklärt. Wenn dir etwas zu ausführlich vorkommt, überspring es einfach.
Linux, Windows oder macOS. Alle Programme und Fehlermeldungen wurden mit Rust 1.99 und iced 0.14 unter Linux (Fedora 44), Windows 11 und macOS geprüft. Die Einrichtung wird für alle drei Systeme Schritt für Schritt gezeigt.
Ja, in aller Regel. Neuere Versionen funktionieren meist genauso, nur der Wortlaut mancher Compiler-Meldungen kann sich etwas ändern.
Das Buch stammt von Volker Dähn. Statt eines klassischen Lektorats wurde der Text von einer KI (Claude von Anthropic) lektoriert und korrigiert. Das steht offen im Impressum des Buches, und alle Programme wurden tatsächlich auf drei Systemen geprüft.
Rustlings sind kleine Übungsaufgaben zum Rust-Lernen, die Volker ins Deutsche übersetzt hat. Die Empfehlung: Rustlings zum Üben in kleinen Häppchen, das Buch zum Verstehen und Mitbauen. Du findest alles im Repository rustlings.de auf GitHub.
Ja, er ist in Planung und setzt für die Oberfläche auf Dioxus. Mehr dazu im Abschnitt Band 2. Einen Erscheinungstermin gibt es noch nicht.
Schreib mir. Rückmeldungen sind ausdrücklich erwünscht und helfen, das Buch besser zu machen.
Am Ende des Buches kannst du Programme schreiben, die Fenster zeichnen, Daten speichern, Fehler ehrlich behandeln und sich für drei Systeme verteilen lassen. Und du hast gelernt, dem Compiler zuzuhören.