immunant/c2rust

Migrate C code to Rust

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 60 minutes ago
Added to GitGenius on September 14th, 2026
Created on April 20th, 2018
Open Issues & Pull Requests: 396 (+0)
GitHub issues: Enabled
Number of forks: 317
Total Stargazers: 4,802 (+0)
Total Subscribers: 57 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 24.9 hours
Mean response time: 99.3 days
90th percentile: 232.8 days
Tracked items: 281

Most active contributors

Sign in to see contributor activity.

How this project is maintained

About 17% of issues opened in the past year have never received a reply. 96% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. 80% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 49% of issues opened in the past year have been closed. Three people close 81% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 142
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 577 days
Stale 30+ days: 136
Stale 90+ days: 122

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 1
Events in 7 days: 1

Top labels

  • bug (56)
  • enhancement (36)
  • refactorer (15)
  • control flow (11)
  • readability (9)
  • mistranslation (8)
  • documentation (5)
  • good first issue (5)

Most active issues this week

Detailed Description

C2Rust is a transpiler that converts C99-compliant code to Rust.

The tool addresses the challenge of migrating large C codebases to Rust by automatically translating C code into unsafe Rust that preserves the original functionality. The transpiler produces output that closely mirrors the input C code, ensuring that existing test suites continue to pass after translation. This approach prioritizes correctness and compatibility over idiomatic Rust, treating the transpiled code as a starting point rather than a finished product.

The project is designed for teams managing substantial C codebases who want to gain Rust's memory safety guarantees without rewriting from scratch. It suits projects where preserving exact behavior during migration is critical. The tool acknowledges that its output is unsafe and unidiomatic, requiring additional refinement work. To support this refinement, C2Rust provides a deterministic refactoring tool for automated cleanup and an LLM-powered postprocessor for more complex transformations, though the latter can introduce errors and should be paired with robust testing. The transpiler can be tested interactively through Compiler Explorer without installation.

Development activity shows consistent engagement with the codebase through regular commits addressing both new features and bug fixes. The project maintains active documentation efforts, including an in-tree manual that receives updates, though some older online documentation has not been synchronized. The build system demonstrates careful attention to platform compatibility, with explicit support for multiple LLVM versions and detailed installation instructions across Ubuntu, Debian, Arch Linux, NixOS, and macOS. The master branch is noted as under constant development with potential for instability, indicating active experimentation alongside the stable release channel available through standard package managers.