How Rust transforms into Machine Code.

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Sevalla - Deploy and host your apps and databases, now with $50 credit!
Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
sevalla.com
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
  1. rust

    Empowering everyone to build reliable and efficient software.

    MIR goes through many different transformations from the time it's built to what gets lowered to LLVM IR. It's also worth noting that borrow checking works on MIR. Some of the most important MIR transformations are drop elaboration and generator lowering.

  2. Sevalla

    Deploy and host your apps and databases, now with $50 credit! Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!

    Sevalla logo
  3. astexplorer

    A web tool to explore the ASTs generated by various parsers.

    This is probably the most obvious step of how rustc transforms source code. The first step in this is lexing - it converts your rust code into a stream of tokens. The stream is similar to that of TokenStream in procedural macros, but the API is different - proc_macro requires stability, while rustc is very unstable. For example: rs fn main () {} transforms into Ident, Ident, OpenParen, CloseParen, OpenBrace, CloseBrace, At this point, it's important to note that identifiers are just represented as Ident. This is also represented through an enum internally via rustc_lexer. Then, the second stage, parsing. This transforms the tokens into a more useful form, the abstract syntax tree, Using the AST Explorer, putting in our code and selecting Rust language, we can see that the code above transforms into an AST. I won't paste the AST here due to sheerly how long it is, but I invite you to check it out yourself.

  4. rustc-dev-guide

    A guide to how rustc works and how to contribute to it.

    It's possible - you could open an issue on the rustc-dev-guide repo if you'd like. https://github.com/rust-lang/rustc-dev-guide/

  5. inkwell

    It's a New Kind of Wrapper for Exposing LLVM (Safely)

    inkwell is a great llvm binding for rust and it has an implementation of kaleidoscope

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • The Inko Programming Language

    1 project | news.ycombinator.com | 12 May 2025
  • A language for building concurrent software with confidence

    1 project | news.ycombinator.com | 27 Mar 2025
  • Inko: A language for building concurrent software with confidence

    1 project | news.ycombinator.com | 14 Feb 2025
  • The tiniest transpiler you'll ever see

    2 projects | dev.to | 15 Dec 2024
  • The rust project has a burnout problem

    3 projects | news.ycombinator.com | 17 Jan 2024

Did you know that Rust is
the 5th most popular programming language
based on number of references?