<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/canonical-funds-university-of-bristol-research-into-automated-c-to-rust-translation-y0ud6jam2" -->

---
title: Canonical funds University of Bristol research into...
description: Canonical is funding a three-year PhD research project at the University of Bristol exploring automated translation of large, security-critical C codebases...
canonical: https://daily.dev/posts/canonical-funds-university-of-bristol-research-into-automated-c-to-rust-translation-y0ud6jam2
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Canonical funds University of Bristol research into automated C-to-Rust translation | daily.dev
og:description: Canonical is funding a three-year PhD research project at the University of Bristol exploring automated translation of large, security-critical C codebases...
og:url: https://daily.dev/posts/canonical-funds-university-of-bristol-research-into-automated-c-to-rust-translation-y0ud6jam2
og:image: https://api.daily.dev/og/posts/Y0UD6jaM2.png
og:image:alt: Canonical funds University of Bristol research into automated C-to-Rust translation
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Canonical funds University of Bristol research into automated C-to-Rust translation

**[Collections](https://daily.dev/sources/collections)** · 3 min read · 11 upvotes · 0 comments

## Summary

Canonical is funding a three-year PhD research project at the University of Bristol exploring automated translation of large, security-critical C codebases into idiomatic Rust. Led by Professor Meng Wang with Canonical's Jon Seager and Dr. Cristina David co-supervising, the research aims to address shortcomings in existing approaches: naive source-to-source translators produce Rust riddled with unsafe blocks, while LLM-based translation can generate plausible but behaviorally incorrect code.

## Content

Canonical is funding a three-year PhD project at the University of Bristol, alongside UK Research and Innovation, to figure out whether AI can safely turn large C codebases into Rust. Professor Meng Wang is leading the work, with Canonical's Jon Seager and Dr. Cristina David co-supervising.

The premise is simple to state and hard to pull off: take security-critical C code, run it through an automated pipeline, and end up with Rust that behaves exactly the same way. Not "close enough" Rust. Not Rust that compiles but quietly changes behavior in some edge case nobody tested. Actually equivalent Rust.

## Why this is harder than it sounds

Anyone who's used an LLM to help port code knows the drill: it produces something plausible-looking, it compiles, and it's subtly wrong in a way you don't discover until production. That's fine for a side project. It's not fine for AppArmor and snap-confine, the two Ubuntu security components chosen as test cases here.

The research treats naive source-to-source translation and raw LLM output as failure modes to design around, not tools to lean on. Getting code that compiles is the easy part. Proving it does the same thing as the original, under every input that matters, is the actual problem.

There's also a specific trap the team is watching for: Rust's `unsafe` blocks. It would be trivially easy for an automated translator to wrap every tricky bit of pointer arithmetic in `unsafe` and call it done. That technically produces Rust. It also throws away the entire reason you'd bother doing this in the first place — memory safety. So one of the project's implicit goals is producing Rust that's actually safe, not just Rust-flavored C.

## The pipeline

The architecture has four stages:

1. **Scheduling** – break the codebase into dependency-aware chunks rather than trying to translate everything at once.
2. **Translation** – use language models trained specifically on C-to-Rust conversion pairs.
3. **Validation** – check the translated code against the original using fuzzing and formal program analysis, hunting for behavioral mismatches.
4. **Debugging and repair** – when validation finds a discrepancy, use symbolic program repair to fix it automatically.

That validation step is really the heart of the project. Anyone can generate Rust that looks right. Proving functional equivalence between a C original and a machine-translated Rust version — at scale, across a real codebase with decades of edge cases baked in — is a genuinely open research problem.

## Why AppArmor and snap-confine

These weren't picked because they're easy. They're production security components on Ubuntu with real-world complexity: the kind of code where a subtle behavioral drift could open a security hole rather than just cause a crash. That's exactly why they're useful as test cases — if the pipeline can handle this, it's handled something meaningful.

But Canonical has been clear, repeatedly, that this isn't a quiet plan to swap out AppArmor's internals next quarter. Jon Seager has stressed that nothing produced by this research is getting merged into either tool anytime soon. This is about answering a prior question first: can automated translation earn enough trust to even be considered for security-critical code? Everything else comes after that.

I find this framing refreshing, honestly. A lot of AI-for-code hype skips straight to "look what it generated" without addressing whether anyone should trust the output. This project is explicitly built around the harder, less flashy problem — proving equivalence and building maintainer confidence — before worrying about shipping anything. That's the right order to do things in, even if it makes for a less exciting headline.

## Questions this post answers

### What is Canonical's C-to-Rust translation research project actually trying to prove?

It aims to establish whether automated tools can translate C code into Rust that is functionally equivalent to the original, not just code that compiles. Funded by Canonical and UK Research and Innovation as a three-year PhD project at the University of Bristol led by Professor Meng Wang, it uses a four-stage pipeline of scheduling, model-based translation, fuzzing/formal-analysis validation, and symbolic repair, tested on AppArmor and snap-confine.

_Developers weighing safe migration paths off C follow research like this via daily.dev._

### Is Canonical planning to replace AppArmor's internals with Rust generated by this research?

No. Canonical's Jon Seager has stated that nothing produced by this research is being merged into AppArmor or snap-confine anytime soon. The project's goal is answering a prior question: whether automated C-to-Rust translation can earn enough trust and proven equivalence to even be considered for security-critical code, before any shipping decisions are made.

_Anyone tracking Rust adoption in security-critical C projects can follow updates like this on daily.dev._

### Why is preventing overuse of Rust's unsafe blocks important in automated C-to-Rust translation?

Because an automated translator could trivially wrap every tricky pointer-arithmetic section in an unsafe block, producing code that technically compiles as Rust but discards the memory-safety guarantees that motivated the translation in the first place. Canonical's research treats this as a failure mode to design around, aiming for genuinely safe Rust rather than Rust-flavored C.

_Teams evaluating whether a C-to-Rust port is actually safer track findings like this through daily.dev._

## Similar posts on daily.dev

- [Canonical backs quest to translate mountains of C into safe Rust with AI](https://daily.dev/posts/canonical-backs-quest-to-translate-mountains-of-c-into-safe-rust-with-ai-s3vchgqgx) · The Register · 6 upvotes · 1 comments
- [Automatically Translating C to Rust – Communications of the ACM](https://daily.dev/posts/automatically-translating-c-to-rust-communications-of-the-acm-o6bpcy6bu) · Hacker News · 5 upvotes · 1 comments

---

Tags: [#rust](https://daily.dev/tags/rust), [#c](https://daily.dev/tags/c)

[View this post on daily.dev](https://daily.dev/posts/canonical-funds-university-of-bristol-research-into-automated-c-to-rust-translation-y0ud6jam2)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Canonical funds University of Bristol research into automated C-to-Rust translation","url":"https://daily.dev/posts/canonical-funds-university-of-bristol-research-into-automated-c-to-rust-translation-y0ud6jam2","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/canonical-funds-university-of-bristol-research-into-automated-c-to-rust-translation-y0ud6jam2"},"datePublished":"2026-08-20T23:15:55.046Z","dateModified":"2026-09-13T19:49:32.837Z","description":"Canonical is funding a three-year PhD research project at the University of Bristol exploring automated translation of large, security-critical C codebases...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5ec9eb393cfa84eb85208d52788e66a1?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5ec9eb393cfa84eb85208d52788e66a1?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Collections","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collections","logo":"https://media.daily.dev/image/upload/s--fk_6ycEi--/f_auto,q_auto/v1780996001/logos/collections?_a=BAMAMiWQ0","url":"https://daily.dev/sources/collections"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/canonical-funds-university-of-bristol-research-into-automated-c-to-rust-translation-y0ud6jam2","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":11},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"rust,c","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collections","item":"https://daily.dev/sources/collections"},{"@type":"ListItem","position":3,"name":"Canonical funds University of Bristol research into automated C-to-Rust translation"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/canonical-funds-university-of-bristol-research-into-automated-c-to-rust-translation-y0ud6jam2#faq","mainEntity":[{"@type":"Question","name":"What is Canonical's C-to-Rust translation research project actually trying to prove?","acceptedAnswer":{"@type":"Answer","text":"It aims to establish whether automated tools can translate C code into Rust that is functionally equivalent to the original, not just code that compiles. Funded by Canonical and UK Research and Innovation as a three-year PhD project at the University of Bristol led by Professor Meng Wang, it uses a four-stage pipeline of scheduling, model-based translation, fuzzing/formal-analysis validation, and symbolic repair, tested on AppArmor and snap-confine. Developers weighing safe migration paths off C follow research like this via daily.dev."}},{"@type":"Question","name":"Is Canonical planning to replace AppArmor's internals with Rust generated by this research?","acceptedAnswer":{"@type":"Answer","text":"No. Canonical's Jon Seager has stated that nothing produced by this research is being merged into AppArmor or snap-confine anytime soon. The project's goal is answering a prior question: whether automated C-to-Rust translation can earn enough trust and proven equivalence to even be considered for security-critical code, before any shipping decisions are made. Anyone tracking Rust adoption in security-critical C projects can follow updates like this on daily.dev."}},{"@type":"Question","name":"Why is preventing overuse of Rust's unsafe blocks important in automated C-to-Rust translation?","acceptedAnswer":{"@type":"Answer","text":"Because an automated translator could trivially wrap every tricky pointer-arithmetic section in an unsafe block, producing code that technically compiles as Rust but discards the memory-safety guarantees that motivated the translation in the first place. Canonical's research treats this as a failure mode to design around, aiming for genuinely safe Rust rather than Rust-flavored C. Teams evaluating whether a C-to-Rust port is actually safer track findings like this through daily.dev."}}]}
```

