As part of the collaboration between Canonical and the University of Bristol, the project will target AppArmor and snap-confine as industrial case studies. Both are critical to Ubuntu’s security posture, and provide a substantially harder test than isolated translation examples. They will help us evaluate whether the techniques can cope with the structure and constraints of mature production software.
Note that this is not a commitment to replace AppArmor or snap-confine with what is generated, rather that we have a vested interest in the software and are keen to see the results.
The most optimistic outcome would be a system capable of translating substantial C repositories into Rust with strong evidence of behavioural equivalence and relatively little manual intervention. The research could also produce better methods for decomposing repositories, stronger validation techniques, reusable translation datasets, improved program-repair tools and a more precise understanding of where automated migration stops being reliable.



It isn’t always about “new”. For example, some GNU binaries are decades old and were changed only to fix bugs.
C has major disadvantages compared to Rust, which is why even Linus Torvalds said a couple of years ago, to not write any new C code anymore for the Kernel and that old code will be transpiled steadily.
It is not about a cult. It is not about being fancy. It is quite the opposite. Choosing Rust over C is very rational.
Also, obligatory fuck Canonical. Automatic transpiling is such a stupid thing. Have fun maintaining the new code that was written by a machine, while not having any Rust experts in your team.