Vor ein paar Jahren war der einzige Weg, Rust-Code zu kompilieren, der rustc-Compiler mit LLVM als Backend. Seitdem haben mehrere Projekte, darunter mrustc, die Rust-Unterstützung von GCC (gccrs), rust_codegen_gcc und Cranelift, die Compiler-Implementierungen für Rust diversifiziert. Das neueste Projekt, Eurydice, zielt darauf ab, Rust-Code in sauberen C-Code zu konvertieren, was in hochsicherer Software nützlich ist, in der Verifikationswerkzeuge C erwarten.
Eurydice wurde 2023 gestartet und ist Teil des Aeneas-Projekts, das Werkzeuge zur Anwendung formaler Verifikation auf Rust-Code entwickelt. Gepflegt wird es von Forschern von Inria und Microsoft. Eurydice folgt einer standardmäßigen Compiler-Struktur: Rust parsen, in eine IR umwandeln, Durchläufe anwenden und C ausgeben.
Anders als andere Compiler bewahrt Eurydice die Code-Struktur und entfernt gleichzeitig Rust-spezifische Konstrukte. Zum Beispiel kompiliert es Funktionen für das kleinste gemeinsame Vielfache in lesbaren C-Code mit temporären Variablen, um die Auswertungsreihenfolge beizubehalten. Zwar lassen sich nicht alle Rust-Programme aufgrund von Generics und Iteratoren originalgetreu übersetzen, doch bietet Eurydice einen reibungsloseren Übergang für Umgebungen mit C-Compilern, aber ohne Rust-Unterstützung.
Das Projekt enthält Code unter den Lizenzen MIT und Apache-2.0 und nimmt externe Beiträge an.
Quelle: Hacker News · Zusammengefasst von HeadlinesBriefing