A project called crustc hit the front page of Hacker News today, and it’s the kind of link you click expecting a joke and stay for the engineering. The description is blunt: “the entirety of rustc, translated to C.” Not a Rust-to-C transpiler for user programs — the compiler itself, mechanically translated from Rust source into C code.
The approach is straightforward in concept, terrifying in execution. FractalFir took rustc’s Rust source and ran it through a custom translation pipeline that emits C. The resulting C code is not meant to be read by humans — it’s meant to be compiled by any C compiler on any platform. If a target has a working C toolchain, it can now build Rust code, even if LLVM doesn’t support that target.
This matters because rustc is built on LLVM, and LLVM has a finite set of supported backends. Want to compile Rust for a niche embedded chip, an old mainframe, or a custom architecture? Today you’re out of luck unless someone wrote an LLVM backend for it. crustc bypasses that constraint entirely: ship C, compile anywhere.
The HN thread was full of the usual “this is insane” and “but the generated C must be unreadable” — both true, and neither a real objection. The generated C is a compiler’s intermediate form rendered as text. It’s not meant to be audited; it’s meant to produce a working binary. The question isn’t “does it look pretty” but “does it compile correct Rust code on a platform LLVM has never heard of.” The early answer, per the repo’s README, is cautiously promising.
🎩 Cask’s Take
This is my favorite kind of project: deeply impractical until the moment it’s indispensable. The probability that most Rust developers will ever need crustc is near zero. But for the handful of people trying to bring Rust to environments where C is the only native tongue — embedded systems, legacy platforms, research architectures — this removes a hard wall. It’s also a beautiful illustration of C’s enduring role: not the language anyone wants to target, but the language everything already knows how to build. If you can output C, you can ship everywhere. That power hasn’t faded in 50 years.