Versionsverwaltung Git: Community diskutiert Migration nach Rust

Nachdem Rust in prominenten Projekten wie Linux und Android eingezogen ist, steht auch bei Git der Einsatz zur Diskussion.

In Pocket speichern vorlesen Druckansicht 59 Kommentare lesen

(Bild: iX)

Lesezeit: 3 Min.
Inhaltsverzeichnis

Die Git-Community führt derzeit auf der Mailing-Liste eine Diskussion darüber, ob es sinnvoll ist, Teile des Projekts nach Rust zu migrieren. Neben einem Blick auf die Vorteile zeigen allerdings die ersten Beiträge bereits die Herausforderungen, die besonders für die Versionsverwaltung gelten.

Der Initiator der Debatte Taylor Blau ist als Entwickler in das Open-Source-Projekt Git involviert und schreibt regelmäßig auf dem Blog der Versionsverwaltungsplattform GitHub vor allem über neue Releases und Schwachstellen in Git.

In einem Beitrag auf der Mailing-Liste zur Git-Entwicklung hebt Blau die Vorteile von Rust gegenüber C hervor. Dabei betont er vor allem die Speichersicherheit. Rust bietet im Gegensatz zu C++ ein Memory-Safety-Konzept, das viele Speicherfehler verhindert, ohne dabei den Overhead einer Speicherverwaltung aufzusetzen. Nach wie vor sind Speicherfehler für einen Großteil der kritischen Schwachstellen in Software verantwortlich.

Daneben hebt Blau hervor, dass eine moderne Sprache es für Programmiererinnen und Programmierer attraktiver mache, sich an dem Open-Source-Projekt zu beteiligen. Außerdem stärke Rust das Vertrauen in frischen Code oder Refactorings – sofern man weitgehend auf unsafe verzichte. Letzteres Keyword umgeht die strikten Sicherheitsvorgaben und ist in einigen Codeteilen unter anderem für das direkte Zusammenspiel mit C unvermeidbar.

Blau nennt allerdings auch einige Herausforderungen, allen voran die zahlreichen Plattformen, auf denen Git läuft. Der Rust-Compiler rustc existiert bei Weitem nicht auf allen Plattformen, auf denen ein C-Compiler verfügbar ist. Auch stelle sich die Frage, welche Teile von Git sich als Startpunkt anbieten, um den Code zu migrieren. Blau schlägt vor, mit den eigenständigen Libraries zu beginnen.

Dass bei der Migration ein Zusammenspiel von Rust mit C unumgänglich ist, sieht Blau weniger als Problem, da das Foreign Function Interface (FFI) von Rust eine geschmeidige Integration mit C ermögliche.

Die ersten Antworten zeigen ein gespaltenes Bild. Einige äußern Bedenken, vor allem wegen der breiten Plattformvielfalt, für die Git verfügbar ist. Eine weitere Dependency würde die Anbindung an einige Plattformen in künftigen Releases erschweren.

Auch verkompliziere eine Migration das Projekt. Im Vergleich dazu habe die Linux-Community einige "Blätter" ("leaves", wohl als Anspielung auf die Bäume in Versionsverwaltungssystemen) in Rust hinzugefügt, darunter Gerätetreiber, aber nicht begonnen, den Kernel-Code nach Rust zu migrieren.

Umgekehrt gibt es aber auch positive Reaktionen, die weitere Vorteile nennen, darunter Performance, vor allem für nebenläufigen Code. Es gäbe zudem weniger plattformspezifische Besonderheiten, die das Testen der Codebasis von Git erschwerten.

Ein Vorschlag, der für den Anfang (sofern Rust genügend Zustimmung in der Community findet) sinnvoll scheint, ist, die Anbindung von Rust zunächst als optional zu kennzeichnen, sodass Git sich weiterhin ohne Rust bauen ließe.

(rme)