rust
A safe, concurrent, practical language.
This is the raw source code for the Rust programming language itself, including the compiler, standard library, and documentation. It is meant for contributors who want to modify or fix the language, not for people who just want to write Rust programs.
This repository contains the source code for Rust, a programming language known for being safe and practical. If you're not building the language from scratch yourself, you'd normally install it using a standard installer rather than working with this raw code. The project provides the compiler that translates code into runnable programs, the standard library of pre-built tools, and official documentation.
Building a programming language from its raw source is a heavy task. This code requires specific helper programs (like C++ compilers and Python) and enough memory to compile everything. A notable quirk of building Rust is that its own compiler is written in Rust, so the build process requires a precompiled "snapshot" version of the compiler to get started. It fetches this snapshot over the internet during the build, which effectively bootstraps the new version into existence.
Someone working with this repository is almost certainly a language developer or contributor, not a typical software builder. For example, a contributor might want to fix a bug in how the compiler handles errors, or add a new feature to the standard library. The README provides detailed instructions for compiling the language on Windows, macOS, and Linux, including navigating the differences between Windows build environments.
A practical tradeoff of working with this project is the sheer computing power required. The build process needs between 600 megabytes and 1.5 gigabytes of RAM to complete. The documentation warns that if the build process is forced to use swap space on your hard drive, the compilation will take a very long time to finish. This makes it clear that compiling a language from scratch is a resource-intensive task meant for dedicated machines.
Where it fits
- Fix a bug in how the Rust compiler handles error messages.
- Add a new function or feature to the Rust standard library.
- Contribute improvements to the official Rust documentation.
- Build a custom version of the Rust compiler from source.