Canonical Co-Funds a Bristol PhD on Using LLMs to Translate Large C Codebases Into Safe Rust

Canonical and UK Research and Innovation are funding a three-year University of Bristol PhD to test whether LLMs can break programs of hundreds of thousands of lines of C into components and rewrite them as safe, maintainable Rust. AppArmor and snap-confine are the named test cases.
Canonical Co-Funds a Bristol PhD on Using LLMs to Translate Large C Codebases Into Safe Rust
Canonical Co-Funds a Bristol PhD on Using LLMs to Translate Large C Codebases Into Safe Rust

Canonical is co-funding a three-year PhD project to find out whether large language models can translate big C codebases into safe Rust. Jon Seager, Canonical’s vice president of engineering, announced the investment on the Ubuntu Discourse forum, and The Register covered the details.

The research will take place in the University of Bristol’s Programming Languages Research Group and is co-sponsored by UK Research and Innovation, the public research funding body. Seager will oversee it with Bristol’s Professor Meng Wang and Dr. Cristina David.

Decompose, Then Translate

The project will investigate whether an LLM can take programs “comprising hundreds of thousands of lines of C,” split them into smaller components and then rewrite those components in “safe, behaviourally correct and maintainable Rust.” It names two test cases, snap-confine and the AppArmor security module, both important to Ubuntu.

Seager argued that existing tools fall short. “Traditional source-to-source translators can process substantial amounts of code, but often preserve the structure of the C too literally. The result may compile as Rust, but still rely heavily on unsafe operations, retain awkward C idioms and require significant manual work before it resembles code a Rust maintainer would choose to own,” he wrote.

His post also acknowledges that mature codebases encode years of fixes for real-world edge cases that were never documented outside the code. A machine translation could preserve some of that behavior, while a clean human rewrite might miss it.

Building on Ubuntu’s Rust Push

Canonical has already brought Rust into Ubuntu under Seager. Ubuntu 25.10 adopted sudo-rs and the uutils coreutils, though both were human-written reimplementations rather than translations of the original C. The Register was openly skeptical that LLM translation will work at this scale, suggesting the hard part will be decomposing a large codebase rather than translating individual pieces, but welcomed a research project designed to produce evidence either way.

For developers maintaining legacy C, the question matters. Rewriting security-critical code by hand is slow and risky, and if automated translation can produce idiomatic, verifiable Rust, it would offer a practical route to memory safety for code that nobody has the budget to rewrite.

Subscribe for Updates

DevNews Newsletter

The DevNews Email Newsletter is essential for software developers, web developers, programmers, and tech decision-makers. Perfect for professionals driving innovation and building the future of tech.

By signing up for our newsletter you agree to receive content related to ientry.com / webpronews.com and our affiliate partners. For additional information refer to our terms of service.

Notice an error?

Help us improve our content by reporting any issues you find.

Get the WebProNews newsletter delivered to your inbox

Get the free daily newsletter read by decision makers

Subscribe
Advertise with Us

Ready to get started?

Get our media kit

Advertise with Us