Warum Rust „langsam kompiliert“ – und wie sccache dein Leben rettet
Wer zum ersten Mal ein modernes Rust-Projekt baut – zum Beispiel mit Leptos oder Trunk – erlebt oft einen kleinen Schock.
Du gibst einen harmlosen Befehl ein:
trunk serve
Und dann passiert … sehr lange sehr viel.
Der Lüfter dreht hoch.
Der Laptop wird warm.
Und Cargo kompiliert scheinbar die halbe digitale Welt neu.
Viele stellen sich dann die Frage:
Warum ist Rust so langsam? Und kann man das beschleunigen?
Die kurze Antwort: Ja. Dramatisch sogar. Mit einem Tool namens sccache.
Aber zuerst müssen wir verstehen, was wirklich passiert.
Rust ist nicht langsam. Rust ist gründlich.
Rust verfolgt eine radikal andere Philosophie als viele moderne Entwicklungsumgebungen.
Es interpretiert nichts.
Es versteckt nichts.
Es kompiliert alles in echten, nativen Code.
Wenn du ein Rust-Projekt baust, passiert folgendes:
- Jede Abhängigkeit wird exakt für dein System kompiliert
- Jede Feature-Kombination wird separat gebaut
- Jeder Target (Linux, Windows, WebAssembly) wird separat gebaut
- Jede Compiler-Version erzeugt eigene Artefakte
Das Ergebnis ist extrem zuverlässig. Aber der erste Build dauert.
Ein modernes Web-Frontend in Rust kann leicht 200 bis 400 einzelne Crates umfassen.
Zum Vergleich:
In der JavaScript-Welt passiert etwas Ähnliches – aber es wird durch Interpreter und Bundler versteckt.
Rust macht es explizit.
Der eigentliche Grund für lange Buildzeiten: fehlender globaler Cache
Cargo speichert heruntergeladene Crates global:
~/.cargo/registry
Aber die kompilierten Versionen landen standardmäßig nur im Projektordner:
project/target/
Das bedeutet:
Ein neues Projekt kompiliert dieselben Abhängigkeiten erneut.
Selbst wenn sie technisch identisch sind.
Hier kommt sccache ins Spiel.
sccache: Der Turbo für Rust-Builds
sccache ist ein Compiler-Cache. Ursprünglich von Mozilla entwickelt.
Die Idee ist einfach:
Wenn Rust denselben Code erneut kompilieren würde, verwendet sccache stattdessen die bereits vorhandene Version.
Das spart enorm viel Zeit.
Nicht 10 Prozent.
Nicht 20 Prozent.
Sondern oft 70 bis 90 Prozent.
Installation von sccache
Die Installation ist einfach:
cargo install sccache
Danach aktivierst du es mit:
export RUSTC_WRAPPER=sccache
Das war’s.
Ab diesem Moment cached Rust seine Compiler-Artefakte global.
Der Unterschied ist dramatisch
Ohne sccache:
- Erstes Projekt: 5 Minuten
- Zweites Projekt: 5 Minuten
Mit sccache:
- Erstes Projekt: 5 Minuten
- Zweites Projekt: 10 Sekunden
Weil fast nichts mehr neu kompiliert werden muss.
Besonders wichtig für WebAssembly und Leptos
Frameworks wie Leptos benötigen WebAssembly.
Das bedeutet, Rust kompiliert zusätzlich für den Target:
wasm32-unknown-unknown
Das ist praktisch eine zweite Plattform.
Ohne Cache wird alles erneut gebaut.
Mit sccache wird es wiederverwendet.
Der Unterschied ist besonders auf Laptops spürbar.
Warum dieser Ansatz langfristig überlegen ist
Rust investiert Zeit beim Build, um Probleme zur Compile-Zeit zu lösen, nicht zur Laufzeit.
Das bedeutet:
- weniger Bugs
- stabilere Software
- reproduzierbare Builds
- keine „Dependency Hell“
Der Preis ist ein längerer erster Build.
Der Gewinn ist Stabilität.
sccache reduziert diesen Preis drastisch.
Fazit
Rust ist nicht langsam. Rust ist präzise.
Die langen Buildzeiten entstehen vor allem, weil Compiler-Artefakte standardmäßig nicht global gecached werden.
Mit einem einzigen Tool – sccache – lässt sich dieses Problem fast vollständig lösen.
Für jeden, der ernsthaft mit Rust arbeitet, ist sccache keine Optimierung.
Es ist Pflicht.
Quickstart Zusammenfassung
Installieren:
cargo install sccache
Aktivieren:
export RUSTC_WRAPPER=sccache
Status prüfen:
sccache --show-stats
Danach fühlt sich Rust plötzlich schnell an.
Nicht, weil es weniger arbeitet.
Sondern weil es aufhört, dieselbe Arbeit zweimal zu tun.