{"slug": "mrustc", "name": "mrustc", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 7, "commenters": 11, "warners": 0, "score": 6.705, "rising": 0.36, "first": "2025-11-02", "latest": "2026-10-14", "why": "thankfully Mutabah made mrustc, which is a minimal c++ port of the rust compiler suitable for building the actual rust compiler", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 8, "neutral": 4, "compare": 0, "warn": 0}, "spark": [2, 0, 0, 2, 0, 1, 0, 0, 1, 0, 0, 2], "listed": true, "loved": [], "caveat": "", "short_quote": "thankfully Mutabah made mrustc, which is a minimal c++ port of the rust compiler suitable for building the actual rust compiler", "kind": "", "icon": false, "domain": null, "github_repo": "github.com/thepowersgang/mrustc", "official_url": "https://github.com/thepowersgang/mrustc", "pricing": "", "aliases": ["mrustc"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 801553857, "item_id": 50097116, "url": "https://news.ycombinator.com/item?id=50097116", "by": "estebank", "date": "2026-10-14", "stance": "recommend", "quote": "Or using https://github.com/thepowersgang/mrustc.", "excerpt": "> Rust is managed by the Rust Foundation This is not quite true: the Foundation handles things like receiving and distributing some payments, helping conferences, employing people for operations (crates.io), and ownership of the trademark. But Rust the language and toolchain is managed by the people doing the work https://rust-lang.org/governance/ > It\u2019s completely possible that Rust\u2019s compiler contains a backdoor. A", "context": "", "use_case": "", "switched_from": "", "story": "Problems with the Rust Language"}, {"id": 799505968, "item_id": 49969123, "url": "https://news.ycombinator.com/item?id=49969123", "by": "VorpalWay", "date": "2026-10-05", "stance": "recommend", "quote": "You could use https://github.com/thepowersgang/mrustc to get relatively modern Rust compiler", "excerpt": "You could use https://github.com/thepowersgang/mrustc to get relatively modern Rust compiler (1.90 currently apparently, but every now and then that is updated). Then build newer rustc from there to reach the current 1.99. But I don't get why some people are obsessed with bootstrapping. Yes it is good to be able to do it, but it isn't something you need to do regularly. Especially since rust had a much better cross c", "context": "", "use_case": "", "switched_from": "", "story": "Mold Linker Version 3.0.0 Release \u2013 Rewritten in Rust"}, {"id": 780309200, "item_id": 48769325, "url": "https://news.ycombinator.com/item?id=48769325", "by": "lispwitch", "date": "2026-07-02", "stance": "recommend", "quote": "it's a really impressive project and has worked well in that role for some time", "excerpt": "Guix uses mrustc for bootstrapping Rust, as required for compiler packages; it's a really impressive project and has worked well in that role for some time. This new project is interesting for other reasons though, because mrustc is targeted at the de fact \"subset\" of Rust in use by rustc at any given time. This looks like it could have broader applications, like compiling Rust programs for platforms not supported by", "context": "", "use_case": "Bootstrapping the Rust compiler", "switched_from": "", "story": "crustc: entirety of `rustc`, translated to C"}, {"id": 763571681, "item_id": 47723230, "url": "https://news.ycombinator.com/item?id=47723230", "by": "lrvick", "date": "2026-04-10", "stance": "recommend", "quote": "thankfully Mutabah made mrustc, which is a minimal c++ port of the rust compiler suitable for building the actual rust compiler", "excerpt": "Let me start by saying I love rust, but the supply chain story for official rust compiler binaries is not okay and I would never even trust them even on a dev workstation, let alone in production. Most people get rust from rustup, an unsigned \"curl | sh\" style magic script. Whoever controls the dns for rustup.rs, or the webserver, or the BGP nodes between you and the webserver, can just change that at any time, or ch", "context": "", "use_case": "bootstrapping Rust compiler", "switched_from": "", "story": "Supply chain nightmare: How Rust will be attacked and what we can do to mitigate"}, {"id": 750506464, "item_id": 46906654, "url": "https://news.ycombinator.com/item?id=46906654", "by": "Philpax", "date": "2026-02-05", "stance": "recommend", "quote": "Nonetheless, mrustc exists", "excerpt": "You will experience very spooky behaviour if you do this, as the language is designed around those semantics. Nonetheless, mrustc exists: https://github.com/thepowersgang/mrustc It will not be noticeably faster because most of the time isn't spent in the checks, it's spent in the codegen. The cranelift backend for rustc might help with this.", "context": "", "use_case": "", "switched_from": "", "story": "We tasked Opus 4.6 using agent teams to build a C Compiler"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["bootstrapping rust compiler", "bootstrapping the rust compiler", "bootstrapping trusted toolchains"], "compared": [{"slug": "gnu-guix", "name": "GNU Guix", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "rustc", "name": "rustc", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "stagex", "name": "stagex", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 791592160, "item_id": 49474510, "url": "https://news.ycombinator.com/item?id=49474510", "by": "siraben", "date": "2026-08-28", "stance": "neutral", "quote": "trying to cheat somewhat by translating mrustc from C++ to C89", "excerpt": "I am working on this![0] But this is actually a herculean task, I've been chipping at it for weeks and even trying to cheat somewhat by translating mrustc from C++ to C89. If anyone has ideas/cheaper ways to run it I would like to know. In the meantime, months ago I achieved bootstrap of TCC (then GCC 4.6) via the same path as the live-bootstrap project but replacing the Scheme part with a C compiler in Ben Lynn's Ha", "context": "", "use_case": "", "switched_from": "", "story": "Bootstrappable Builds: How and Why"}], "threads": [{"url": "https://news.ycombinator.com/item?id=50096485", "title": "Problems with the Rust Language", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49963385", "title": "Mold Linker Version 3.0.0 Release \u2013 Rewritten in Rust", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48768464", "title": "crustc: entirety of `rustc`, translated to C", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49473868", "title": "Bootstrappable Builds: How and Why", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47718891", "title": "Supply chain nightmare: How Rust will be attacked and what we can do to mitigate", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46903616", "title": "We tasked Opus 4.6 using agent teams to build a C Compiler", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 2}, "2025-12": {"neutral": 1}, "2026-01": {"neutral": 1}, "2026-02": {"recommend": 2}, "2026-03": {}, "2026-04": {"recommend": 1}, "2026-05": {}, "2026-06": {}, "2026-07": {"recommend": 1}, "2026-08": {}, "2026-09": {}, "2026-10": {"neutral": 2, "recommend": 2}}, "quotes": [{"id": 801553857, "item_id": 50097116, "url": "https://news.ycombinator.com/item?id=50097116", "by": "estebank", "date": "2026-10-14", "stance": "recommend", "quote": "Or using https://github.com/thepowersgang/mrustc.", "excerpt": "> Rust is managed by the Rust Foundation This is not quite true: the Foundation handles things like receiving and distributing some payments, helping conferences, employing people for operations (crates.io), and ownership of the trademark. But Rust the language and toolchain is managed by the people doing the work https://rust-lang.org/governance/ > It\u2019s completely possible that Rust\u2019s compiler contains a backdoor. A", "context": "", "use_case": "", "switched_from": "", "story": "Problems with the Rust Language"}, {"id": 801549024, "item_id": 50096814, "url": "https://news.ycombinator.com/item?id=50096814", "by": "rgbrgb", "date": "2026-10-14", "stance": "neutral", "quote": "couldn't you compile it with a different rust implementation like https://github.com/thepowersgang/mrustc", "excerpt": "> It\u2019s completely possible that Rust\u2019s compiler contains a backdoor... The only way to compile Rust\u2019s compiler is using a binary package of the previous version released by the Rust Foundation. this is interesting but idk if i get it. couldn't you compile it with a different rust implementation like https://github.com/thepowersgang/mrustc", "context": "", "use_case": "bootstrapping Rust compiler", "switched_from": "", "story": "Problems with the Rust Language"}, {"id": 799505968, "item_id": 49969123, "url": "https://news.ycombinator.com/item?id=49969123", "by": "VorpalWay", "date": "2026-10-05", "stance": "recommend", "quote": "You could use https://github.com/thepowersgang/mrustc to get relatively modern Rust compiler", "excerpt": "You could use https://github.com/thepowersgang/mrustc to get relatively modern Rust compiler (1.90 currently apparently, but every now and then that is updated). Then build newer rustc from there to reach the current 1.99. But I don't get why some people are obsessed with bootstrapping. Yes it is good to be able to do it, but it isn't something you need to do regularly. Especially since rust had a much better cross c", "context": "", "use_case": "", "switched_from": "", "story": "Mold Linker Version 3.0.0 Release \u2013 Rewritten in Rust"}, {"id": 799494896, "item_id": 49968431, "url": "https://news.ycombinator.com/item?id=49968431", "by": "afdbcreid", "date": "2026-10-05", "stance": "neutral", "quote": "This exists: https://github.com/thepowersgang/mrustc.", "excerpt": "This exists: https://github.com/thepowersgang/mrustc.", "context": "", "use_case": "", "switched_from": "", "story": "Mold Linker Version 3.0.0 Release \u2013 Rewritten in Rust"}, {"id": 780309696, "item_id": 48769356, "url": "https://news.ycombinator.com/item?id=48769356", "by": "lispwitch", "date": "2026-07-02", "stance": "neutral", "quote": "mrustc (a handwritten Rust compiler in C++) is already used for that in Guix", "excerpt": "mrustc (a handwritten Rust compiler in C++) is already used for that in Guix and likely other distros: https://guix.gnu.org/blog/2018/bootstrapping-rust/ This would have other benefits though, as it's both a second bootstrapping path and could potentially compile Rust programs for platforms not supported by LLVM", "context": "", "use_case": "", "switched_from": "", "story": "crustc: entirety of `rustc`, translated to C"}, {"id": 780309200, "item_id": 48769325, "url": "https://news.ycombinator.com/item?id=48769325", "by": "lispwitch", "date": "2026-07-02", "stance": "recommend", "quote": "it's a really impressive project and has worked well in that role for some time", "excerpt": "Guix uses mrustc for bootstrapping Rust, as required for compiler packages; it's a really impressive project and has worked well in that role for some time. This new project is interesting for other reasons though, because mrustc is targeted at the de fact \"subset\" of Rust in use by rustc at any given time. This looks like it could have broader applications, like compiling Rust programs for platforms not supported by", "context": "", "use_case": "Bootstrapping the Rust compiler", "switched_from": "", "story": "crustc: entirety of `rustc`, translated to C"}, {"id": 763571681, "item_id": 47723230, "url": "https://news.ycombinator.com/item?id=47723230", "by": "lrvick", "date": "2026-04-10", "stance": "recommend", "quote": "thankfully Mutabah made mrustc, which is a minimal c++ port of the rust compiler suitable for building the actual rust compiler", "excerpt": "Let me start by saying I love rust, but the supply chain story for official rust compiler binaries is not okay and I would never even trust them even on a dev workstation, let alone in production. Most people get rust from rustup, an unsigned \"curl | sh\" style magic script. Whoever controls the dns for rustup.rs, or the webserver, or the BGP nodes between you and the webserver, can just change that at any time, or ch", "context": "", "use_case": "bootstrapping Rust compiler", "switched_from": "", "story": "Supply chain nightmare: How Rust will be attacked and what we can do to mitigate"}, {"id": 750506464, "item_id": 46906654, "url": "https://news.ycombinator.com/item?id=46906654", "by": "Philpax", "date": "2026-02-05", "stance": "recommend", "quote": "Nonetheless, mrustc exists", "excerpt": "You will experience very spooky behaviour if you do this, as the language is designed around those semantics. Nonetheless, mrustc exists: https://github.com/thepowersgang/mrustc It will not be noticeably faster because most of the time isn't spent in the checks, it's spent in the codegen. The cranelift backend for rustc might help with this.", "context": "", "use_case": "", "switched_from": "", "story": "We tasked Opus 4.6 using agent teams to build a C Compiler"}, {"id": 749888736, "item_id": 46868046, "url": "https://news.ycombinator.com/item?id=46868046", "by": "nextaccountic", "date": "2026-02-03", "stance": "recommend", "quote": "Rust can be bootstrapped with mrustc, which is written in C++", "excerpt": "> In general, the bootstrap relies on a binary package of the previous version. This is unacceptable for an otherwise source-only, self-contained distribution like the NetBSD sources. This does not paint the full picture. Rust can be bootstrapped with mrustc, which is written in C++ https://github.com/thepowersgang/mrustc Now, mrustc supports only Rust 1.74. To build Rust 1.92, you need almost 20 builds. But this can", "context": "", "use_case": "", "switched_from": "", "story": "Rust in the NetBSD Kernel, and other odd decisions"}, {"id": 746427840, "item_id": 46651740, "url": "https://news.ycombinator.com/item?id=46651740", "by": "hyperman1", "date": "2026-01-16", "stance": "neutral", "quote": "I assume mrustc is capable of bootstrapping rust?", "excerpt": "I assume mrustc is capable of bootstrapping rust? https://github.com/thepowersgang/mrustc", "context": "", "use_case": "", "switched_from": "", "story": "Is Germany Looking to Put a Backdoor into Arch Linux?"}, {"id": 738874208, "item_id": 46179638, "url": "https://news.ycombinator.com/item?id=46179638", "by": "nutjob2", "date": "2025-12-06", "stance": "neutral", "quote": "Another Rust compiler with a C backend:", "excerpt": "Another Rust compiler with a C backend: https://github.com/thepowersgang/mrustc", "context": "", "use_case": "", "switched_from": "", "story": "Eurydice: a Rust to C compiler"}, {"id": 735520096, "item_id": 45970006, "url": "https://news.ycombinator.com/item?id=45970006", "by": "aw1621107", "date": "2025-11-18", "stance": "recommend", "quote": "mrustc [0] is generally considered the current defense against a trusting trust attack", "excerpt": "> and rustc could include malicious code that isn\u2019t obvious to an outside auditor. I believe mrustc [0] is generally considered the current defense against a trusting trust attack, and IIRC it has verified the lack of such an attack up to rustc 1.74, which is the latest version it currently supports. Presumably whenever gccrs comes online that will be yet another defensive layer. [0]: https://github.com/thepowersgang", "context": "", "use_case": "", "switched_from": "", "story": "Pre-PEP: Rust for CPython"}, {"id": 735209762, "item_id": 45950610, "url": "https://news.ycombinator.com/item?id=45950610", "by": "lrvick", "date": "2025-11-16", "stance": "recommend", "quote": "Also live-bootstrap, stage0, mrustc, mes, and so many amazing projects", "excerpt": "Also the wider reproducible builds website/community https://reproducible-builds.org/ Also live-bootstrap, stage0, mrustc, mes, and so many amazing projects whose combined efforts all helped finally make probably trustworthy toolchains a thing.", "context": "", "use_case": "Bootstrapping trusted toolchains", "switched_from": "", "story": "Running the \"Reflections on Trusting Trust\" Compiler (2023)"}, {"id": 732680192, "item_id": 45792512, "url": "https://news.ycombinator.com/item?id=45792512", "by": "lrvick", "date": "2025-11-02", "stance": "recommend", "quote": "thanks to mrustc combined with our work in stagex", "excerpt": "Not anymore. Real pain in the ass to bootstrap but thanks to mrustc combined with our work in stagex we have an easy to audit path now in a 100% bootstrapped distro. Unfortunately due to no first party support or interest from the Rust team, we have to build through 15+ versions to get to latest and it takes 6+ hours to build with a 20+ core system, but it works. https://codeberg.org/stagex/stagex/src/branch/main/pac", "context": "", "use_case": "", "switched_from": "", "story": "GHC now runs in the browser"}]}