Canonical backs project to auto-translate large C codebases into safe Rust

Canonical Backs New Project to Translate Large C Codebases into Safe Rust

Canonical backs project to auto-translate large C codebases into safe Rust

Canonical is partnering with the University of Bristol on a three-year research project to build a platform that automatically translates large C codebases into safe, idiomatic Rust. The hybrid 'neurosymbolic' approach combines machine learning with program analysis and formal methods. AppArmor and snap-confine will serve as real-world case studies, but Canonical says they are not being rewritten in Rust now.

Current source-to-source translators only address part of the problem.
  1. kayo_20211030

    I have no particular religious preference for a language. One uses what one feels is appropriate.

    But, let's say this effort is a complete success. What's next?

    Can all the maintainers of the c codebase move over to maintaining (forward) the Rust codebase. Surely there'll be some friction, and losses to friction.

    What about deployments, monitoring, support and trouble-shooting? Are the teams that perform those functions now capable of performing those functions in the future? It seems to me that the here-to-there for functional, evolving and reliable systems in the real world has been elided and become simply "a player to be named later".

  2. childintime

    The Darpa Tractor project looks to achieve the same:

    https://news.ycombinator.com/item?id=41110269

    Just a few weeks back it was judged as unlikely to succeed. Now Canonical want to get in.

  3. qew16t

    Great stuff. Instead of asking and funding the C developers of the respective projects for a port, they go for license washing and stealing.

  4. djoldman

    Not the same as:

    https://github.com/uutils/coreutils

    Although I could see them benefitting.

  5. dgan

    can it be done? C codebase are obviously missing the lifetime information, type-generic arguments are just void*, in/out arguments aren't explicit... or at least, the information is scattered across the codebase, and might be inconsistent. a "safe rust" might not be even possible

More from this day

2026-08-20