Support: fuel the next build —
C to Rust with a proof artifact. Verifier-first migration.
Everyone generates Rust from C (agents, c2rust). Nobody trusts the output. Translation is commoditized; verification is scarce.
c2proof is a CLI and GitHub Action that takes a C repository and emits a pull request containing a compiling Rust crate + a detailed parity report.
Add c2proof to your C project to automatically generate a Rust port PR:
name: Rust Port
on: [workflow_dispatch]
permissions:
contents: write
pull-requests: write
jobs:
migrate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Generate Rust Port
uses: AkashPriyadarshii/c2proof@v0.1.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}# Clone the transpiler CLI
git clone https://github.com/AkashPriyadarshii/c2proof
cd c2proof
# Migrate a C repository
cargo run --release -- migrate https://github.com/codeplea/tinyexprIts not just transpiled code. c2proofgenerates aREPORT.md` that is attached to the PR, detailing:
- 🟢 Build status (compiles cleanly)
- 🦀 Lines of Code (C vs Rust)
⚠️ unsafeblock count- 🔍 Unresolved external symbols
For v0.1.0, scope is strictly frozen to:
- Project Structure: Flat C projects only (
.c/.hfiles). Noconfigure,make, orcmakeparsing. - Dogfood Target: Built and tested heavily against
tinyexpr. - Environment: Linux (Ubuntu latest) via Docker container containing pinned
c2rust. - Target OS: No Windows support in v0.1.0.
MIT / Apache-2.0