- Im APT-Paketmanager von Debian sollen ab Mai 2026 Rust-basierter Code und Abhängigkeiten enthalten sein
- In der ersten Phase sollen der Rust-Compiler, die Standardbibliothek und das Sequoia-Ökosystem integriert werden
- Parser für
.deb-, .ar- und .tar-Dateien sowie HTTP-Signaturprüfcode gelten im Hinblick auf Speichersicherheit und verstärkte Unit-Tests als wichtigste Verbesserungsbereiche
- Ports ohne Rust-Toolchain müssen innerhalb von 6 Monaten eine Rust-Umgebung aufbauen oder werden eingestellt (sunset)
- Das ist eine Maßnahme, um das gesamte Projekt auf moderne Werkzeuge und Technologien umzustellen, ohne durch die Kompatibilität mit alter Hardware ausgebremst zu werden
Geplante Einführung von Rust-Code in APT
- Für APT ist die Einführung von Rust-Code und harten Abhängigkeiten (hard dependencies) nach Mai 2026 vorgesehen
- Der Einführungszeitpunkt liegt nach Mai 2026; davor wird dies nicht umgesetzt
- Der Umfang der ersten Integration ist auf den Rust-Compiler, die Standardbibliothek und das Sequoia-Ökosystem begrenzt
Ziel: bessere Codequalität und Sicherheit
- Der Parsing-Code für
.deb-, .ar- und .tar-Dateien sowie der HTTP-Signaturprüfcode sind die wichtigsten Zielbereiche für die Rust-Einführung
- Es wird ausdrücklich darauf hingewiesen, dass diese Bereiche stark von den Vorteilen einer speichersicheren Sprache und eines verstärkten Unit-Test-Systems profitieren werden
Anforderungen an Port-Maintainer
- Ports ohne Rust-Toolchain müssen innerhalb von 6 Monaten eine Rust-Umgebung aufbauen
- Andernfalls kann der betreffende Port eingestellt (sunset) werden
Projektausrichtung
- Es wird betont, dass sich das Debian-Projekt mithilfe moderner Werkzeuge und Technologien weiterentwickeln muss
- Es wird ausdrücklich gesagt, dass die Weiterentwicklung nicht dadurch verzögert werden darf, dass man sich an alter Hardware oder Retro-Computing-Geräten orientiert
Weitere Informationen
- Der Absender ist der Debian- und Ubuntu-Core-Entwickler Julian Andres Klode
- Die Mail wurde auf der Debian-Entwickler-Mailingliste debian-devel veröffentlicht
- Als Anhang ist eine PGP-Signatur (
signature.asc) enthalten
- Es gibt keine zusätzlichen Angaben zu technischen Details oder Änderungen am Zeitplan
1 Kommentare
Hacker-News-Kommentare
Es scheint, als sei die Zeit dafür endlich gekommen. Code zum Parsen nicht vertrauenswürdiger Daten weiterhin in C zu belassen, ist eine technische Schuld, die mit der Zeit nur größer wird
Rust ist nicht viel schwerer zu schreiben als C und wirkt wie die Sprache, die herauskäme, wenn man C heute unter Berücksichtigung des aktuellen Wissens über Sprachdesign und Codesicherheit neu entwickeln würde
Wenn man die Unterstützung für 32-Bit-x86 aus praktischen Gründen aufgeben kann, dann gilt das ebenso für diese Architekturen. Wenn man sie wirklich erhalten will, muss man eben selbst ein Rust-Toolchain-Backend bauen
Go kam dem noch am nächsten, wurde aber nie ernsthaft für Kernsysteme wie systemd diskutiert. Ich frage mich, ob es damals bei der Aufnahme von C++, Python und Perl ähnliche Debatten gab
Lohnt es sich wirklich, bereits kampferprobten Code aufzugeben und dafür neue Kompatibilitätsprobleme und Bugs zu erzeugen?
Der Trend, Kernsysteme in Rust neu zu schreiben, ist stark, aber ich bezweifle, dass das die Sicherheit tatsächlich verbessert, wenn man alte Werkzeuge einfach neu implementiert
Ich verstehe, dass es schwierig ist, neue Systeme einzuführen, aber es fühlt sich immer noch so an, als würde man Schicht um Schicht auf Entscheidungen aus der Telegraphenzeit stapeln
Erstens gibt es kaum neue Mitwirkende, die sich mit alten C/C++-Codebasen befassen wollen. Eine Migration nach Rust erleichtert den Zustrom neuer Entwickler
Zweitens wird Zuverlässigkeit durch häufige Nutzung geprüft, Sicherheit dagegen nur durch Angriffe. Man kann nicht davon ausgehen, dass alter Code bereits alle Angriffsvektoren durchlaufen hat. Deshalb ist das Argument für proaktive Sicherheitsverbesserungen stark
Laut dem Debian-Mail-Thread ist Rust bereits auf den meisten Debian-Release-Architekturen Pflicht
In der zugehörigen Mail werden nur alpha, hppa, m68k und sh4 als Ausnahmen genannt. Ich frage mich, was die Zukunft dieser Architekturen ist
Rust bietet für m68k ein Tier-3-Ziel, aber nicht für die anderen Architekturen. Mich würden reale Anwendungsfälle interessieren
Dass sie geblieben sind, während 32-Bit-x86 und MIPS herausgefallen sind, überrascht mich. Ich habe persönlich etwas Nostalgie dafür, kenne aber keinen echten Einsatzzweck
Früher gab es in LLVM einmal ein DEC-Alpha-Backend, aber das ist lange her
Ich wünschte, die Rust-Community würde nicht in bestehende Projekte eindringen, sondern selbst neue moderne Technik bauen und damit den Beweis antreten
Unabhängige Projekte wie Redox sind dafür ein Beispiel, und ich bedaure, dass solche Versuche nicht stärker vorangetrieben werden
Natürlich gibt es auch radikale Fans, die ständig „Schreibt es in Rust neu“ sagen, aber das ist hier nicht der Fall
Die Rust-Standardbibliothek zu verwenden ist okay, aber ich will nicht für den Build eines simplen deb-Parsers 500 Cargo-Pakete mitschleppen
Es könnte vernünftig sein, zu warten, bis der Rust-for-GCC-Port stabil ist
Auch der Kernel wird Rust nicht verpflichtend machen, bevor es GCC-Unterstützung gibt.
Mehrere Implementierungen würden die Sprache weniger instabil machen
Wenn man die Architekturunterstützung aber jetzt kappt, könnte das spätere Zurückkehren kompliziert machen, falls es später doch eine Rust-Toolchain gibt
Wahrscheinlicher ist eher, dass rustc_codegen_gcc vorher stabil wird
Ich erinnere daran, dass der Autor der Debian-Rust-Diskussionsmail der Paketbetreuer von keepassxc ist
Es gibt Threads darüber, dass er sich auch früher gegenüber Upstream-Entwicklern und Nutzern grob verhalten hat
Es ist interessant zu beobachten, wie sich die Meinung einer Person verändert. Link zur früheren Aussage
Ich halte Rust für bloßen Hype. In der Embedded-Welt ist C immer noch König.
Ich habe in meinem Umfeld noch nie jemanden gesehen, der Rust tatsächlich nutzt oder auch nur ernsthaft erwägt
Die Entwicklung ist schnell, während Leistung und Speichereffizienz erhalten bleiben.
Der einzige Nachteil ist die Binärgröße. Ich denke, die Zukunft von Rust steht bereits fest
Dennoch ist nicht nur die Speichersicherheit attraktiv, sondern die Gesamtqualität von Sprache und Toolchain
Ich denke, eine polyglotte Umgebung schafft nur noch mehr Probleme.
Python, Node, Go, Rust und so weiter benötigen jeweils eigene Toolchains und Paketmanager, was alles komplizierter macht
Mit Node hat man zwar Buffer Overflows reduziert, dafür aber Supply-Chain-Angriffe vermehrt.
Es wäre besser, gleich ganz neu anzufangen, und wenn man umfassend auf Rust setzen will, sollte man lieber zu Redox OS beitragen
Alles in einer Sprache neu zu schreiben ist unrealistisch, und Redox zu pushen könnte sogar ineffizient sein
Rust ist bereits ausreichend erprobt und hat als kompilierte Sprache mit geringerer Selbstzerstörungsgefahr bei Änderungen gegenüber C einen klaren Wert
Auch das Aufgeben alter Architekturen ist nicht unvernünftig
Welche Sprachen entfernt oder aufgenommen werden, sollten die Debian-Betreuer entscheiden