Easy analysis of Rust code with Charon
summary
Charon extracts a crate and every dependency into a big JSON export that lists types, functions (names, signatures, bodies), and evaluated constants; it reconstructs MIR into structured MIR-like control flow with loops and ifs instead of gotos, makes trait implementations explicit in a explicit trait dictionary passing style, and offers optional monomorphization so callers map to concrete implementations. It already powers Rust→OCaml and Rust→C translations, a bug-finder and symbolic execution pipeline, and is adding accurate drop resolution for precise runtime-analysis.
AI-written summary · about
chapters (8)
- 0:00Introduction
- 1:07Kon tool demo
- 2:53JSON format details
- 4:39Generic code handling
- 5:42Kon vs compiler internals
- 7:30Kon use cases
- 9:16Status and future
- 9:57Call for contributions
related talks
27mParsing Rust code considered harmful
28mC2Rust: Migrating Legacy Code to Rust
29mMacromancy: an introduction to Rust macros
25m"Compiler-Driven Development: Making Rust Work for You"
25mMaking Tools for Rust: An Introduction to the Compiler and How It Can Help You
25mAre we *actually* IDE yet? A look on the Rust IDE Story
32mBuilding and Maintaining Rust at Scale
25m"Eternal Sunshine of the Rustfmt'ed Mind"
