Core Infrastructure Crates
rustc - Main Compiler Driver
rustc - Main Compiler Driver
rustc_driver, rustc_driver_impl, rustc_codegen_ssa, rustc_public, rustc_public_bridgerustc_driver - Compiler Driver (Re-export)
rustc_driver - Compiler Driver (Re-export)
rustc_driver_impl that allows parallel compilation of driver implementation code.rustc_driver_impl - Compiler Driver Implementation
rustc_driver_impl - Compiler Driver Implementation
rustc_interface - Compiler Interface
rustc_interface - Compiler Interface
rustc_session - Compilation Session
rustc_session - Compilation Session
Data Structures and Utilities
rustc_data_structures - Core Data Structures
rustc_data_structures - Core Data Structures
rustc_arena - Arena Allocator
rustc_arena - Arena Allocator
rustc_index - Index Types
rustc_index - Index Types
IndexVec for vectors indexed by custom types.rustc_index_macros - Index Macros
rustc_index_macros - Index Macros
rustc_hashes - Hash Functions
rustc_hashes - Hash Functions
rustc_serialize - Serialization
rustc_serialize - Serialization
Abstract Syntax Tree (AST)
rustc_ast - Abstract Syntax Tree
rustc_ast - Abstract Syntax Tree
rustc_ast_ir - AST Intermediate Representation
rustc_ast_ir - AST Intermediate Representation
rustc_ast_lowering - AST to HIR Lowering
rustc_ast_lowering - AST to HIR Lowering
rustc_ast, rustc_hir, rustc_middle, rustc_spanrustc_ast_passes - AST Analysis Passes
rustc_ast_passes - AST Analysis Passes
rustc_ast_pretty - AST Pretty Printing
rustc_ast_pretty - AST Pretty Printing
High-Level Intermediate Representation (HIR)
rustc_hir - High-Level IR
rustc_hir - High-Level IR
rustc_hir_id - HIR Identifiers
rustc_hir_id - HIR Identifiers
rustc_hir_analysis - HIR Type Checking
rustc_hir_analysis - HIR Type Checking
rustc_hir_typeck - HIR Type Checking
rustc_hir_typeck - HIR Type Checking
rustc_hir_pretty - HIR Pretty Printing
rustc_hir_pretty - HIR Pretty Printing
Mid-Level Intermediate Representation (MIR)
rustc_mir_build - MIR Construction
rustc_mir_build - MIR Construction
rustc_mir_dataflow - MIR Dataflow Analysis
rustc_mir_dataflow - MIR Dataflow Analysis
rustc_mir_transform - MIR Optimization Passes
rustc_mir_transform - MIR Optimization Passes
Type System and Inference
rustc_middle - Middle Layer
rustc_middle - Middle Layer
- Type system definitions (
tymodule) - MIR definitions
- Query system declarations
- Trait system types
rustc_type_ir - Type System IR
rustc_type_ir - Type System IR
rustc_type_ir_macros - Type IR Macros
rustc_type_ir_macros - Type IR Macros
rustc_infer - Type Inference
rustc_infer - Type Inference
rustc_hir_analysis.rustc_trait_selection - Trait Resolution
rustc_trait_selection - Trait Resolution
rustc_traits - Trait Queries
rustc_traits - Trait Queries
rustc_next_trait_solver - Next-Gen Trait Solver
rustc_next_trait_solver - Next-Gen Trait Solver
rustc_ty_utils - Type Utilities
rustc_ty_utils - Type Utilities
Borrow Checking
rustc_borrowck - Borrow Checker
rustc_borrowck - Borrow Checker
rustc_middle, rustc_mir_dataflow, rustc_infer, polonius-engineCode Generation
rustc_codegen_ssa - Codegen Abstraction
rustc_codegen_ssa - Codegen Abstraction
rustc_codegen_llvm - LLVM Backend
rustc_codegen_llvm - LLVM Backend
rustc_codegen_ssa, rustc_llvm, rustc_middle, rustc_targetFeatures: llvm_enzyme, llvm_offloadrustc_codegen_gcc - GCC Backend
rustc_codegen_gcc - GCC Backend
rustc_codegen_cranelift - Cranelift Backend
rustc_codegen_cranelift - Cranelift Backend
rustc_llvm - LLVM Bindings
rustc_llvm - LLVM Bindings
rustc_monomorphize - Monomorphization
rustc_monomorphize - Monomorphization
rustc_symbol_mangling - Symbol Mangling
rustc_symbol_mangling - Symbol Mangling
Lexing and Parsing
rustc_lexer - Lexical Analysis
rustc_lexer - Lexical Analysis
rustc_parse - Parser
rustc_parse - Parser
rustc_parse_format - Format String Parser
rustc_parse_format - Format String Parser
format!, println!, etc.Name Resolution
rustc_resolve - Name Resolution
rustc_resolve - Name Resolution
- Builds module structure
- Resolves paths in macros, imports, expressions, types, patterns
- Resolves label and lifetime names
rustc_privacy - Privacy Checking
rustc_privacy - Privacy Checking
Macro Expansion
rustc_expand - Macro Expansion
rustc_expand - Macro Expansion
rustc_builtin_macros - Built-in Macros
rustc_builtin_macros - Built-in Macros
println!, derive, cfg!, etc.rustc_macros - Compiler Macros
rustc_macros - Compiler Macros
rustc_proc_macro - Procedural Macro Support
rustc_proc_macro - Procedural Macro Support
Analysis Passes
rustc_passes - Compiler Passes
rustc_passes - Compiler Passes
- Dead code detection
- Reachability analysis
- Stability checking
- Language item collection
- Entry point detection
rustc_const_eval - Constant Evaluation
rustc_const_eval - Constant Evaluation
rustc_pattern_analysis - Pattern Analysis
rustc_pattern_analysis - Pattern Analysis
rustc_transmute - Transmute Checking
rustc_transmute - Transmute Checking
transmute operations.Incremental Compilation and Queries
rustc_query_impl - Query System Implementation
rustc_query_impl - Query System Implementation
rustc_incremental - Incremental Compilation
rustc_incremental - Incremental Compilation
Metadata and Linking
rustc_metadata - Crate Metadata
rustc_metadata - Crate Metadata
rustc_target - Target Specification
rustc_target - Target Specification
rustc_abi - ABI Definitions
rustc_abi - ABI Definitions
Diagnostics and Error Reporting
rustc_errors - Error Diagnostics
rustc_errors - Error Diagnostics
rustc_error_codes - Error Code Definitions
rustc_error_codes - Error Code Definitions
rustc_error_messages - Error Messages
rustc_error_messages - Error Messages
Source Code Management
rustc_span - Source Positions
rustc_span - Source Positions
- Spans (represented by
SpanData) - Source file management
- Macro expansion tracking
rustc_feature - Feature Gates
rustc_feature - Feature Gates
rustc_attr_parsing - Attribute Parsing
rustc_attr_parsing - Attribute Parsing
Linting
rustc_lint - Lint Infrastructure
rustc_lint - Lint Infrastructure
rustc_lint_defs - Lint Definitions
rustc_lint_defs - Lint Definitions
Specialized Utilities
rustc_fs_util - Filesystem Utilities
rustc_fs_util - Filesystem Utilities
rustc_graphviz - Graphviz Output
rustc_graphviz - Graphviz Output
rustc_log - Logging
rustc_log - Logging
rustc_sanitizers - Sanitizer Support
rustc_sanitizers - Sanitizer Support
rustc_thread_pool - Thread Pool
rustc_thread_pool - Thread Pool
rustc_windows_rc - Windows Resources
rustc_windows_rc - Windows Resources
rustc_baked_icu_data - ICU Data
rustc_baked_icu_data - ICU Data
Public API
rustc_public - Public Compiler API
rustc_public - Public Compiler API
rustc_public_bridge - Public API Bridge
rustc_public_bridge - Public API Bridge
Crate Dependency Graph
- Parallel compilation
- Clear separation of concerns
- Easier maintenance and testing
- Flexible backend support (LLVM, GCC, Cranelift)