RUSTPRINT

Search RustPrint by question, error, syntax, or task.

← Start with Rust

START 01 // THE BIG PICTURE

What is Rust?

Rust is a programming language. That is technically correct and almost useless if you do not already know what a programming language, compiler, or executable is.

The useful version is this: Rust is a way to write instructions for a computer, with a very opinionated checker standing between the code you write and the program you eventually run.

Start with the boring part: code is just text

When a programmer writes Rust, they are mostly writing text files. Rust source files normally end in.rs. The text follows Rust's grammar, in the same way that a sentence follows the grammar of a human language.

Your computer cannot directly execute that source file. Another program, the Rust compiler (rustc), checks the code and turns valid Rust into a program the computer can run.

THE SIMPLE VERSION
YOU WRITERust source code
main.rs
→
RUST CHECKSthe compiler
rustc
→
YOU GETa program
or an error
IN NORMAL HUMAN LANGUAGE

Think of the compiler as a very strict editor that is allowed to refuse publication. It does not merely translate your code. It also checks whether many of Rust's rules are being followed before producing the program.

What does Rust code actually look like?

A tiny Rust program can be genuinely tiny. This one prints a line of text:

EXAMPLE: CI-CHECKEDCOMPILED · examples/getting-started/src/main.rs#start-what-is-rust-hello
println!("Hello, Rust!");

fn main() defines the function where this program starts. The line withprintln! asks Rust to print text followed by a newline. You do not need to understand functions or macros yet. For now, the important part is that this is real Rust source code, and RustPrint compiles this exact example in CI.

Why does Rust have a reputation for being strict?

Rust deliberately makes the compiler an important part of the development process. The official Rust Book describes the compiler as a kind of gatekeeper: it refuses to compile code when certain classes of mistakes are detected. That can feel annoying when you are learning, because a program that looks “close enough” may still be rejected.

The upside is the same thing viewed from the other side. A lot of problems are pushed earlier, into the moment when you are still writing the code, instead of being left for the running program to discover later.

Fast native programs

Rust is designed to give programmers low-level control and strong performance without requiring a garbage collector for memory management.

Compiler-enforced rules

The compiler checks much more than spelling. Ownership, types, borrowing, and other rules can stop code from compiling until the problem is resolved.

Modern project tooling

Cargo is included in the standard Rust workflow for creating projects, building them, running tests, and managing dependencies.

A learning curve with a reason

Some concepts arrive earlier in Rust than they do in many other languages. That makes the beginning denser, but those concepts are connected to the guarantees Rust is trying to provide.

Is Rust only for operating systems and hardcore low-level work?

No. Systems programming is an important part of Rust's identity, but the official Rust documentation lists production uses that include command-line tools, web services, DevOps tooling, embedded devices, audio and video software, search engines, Internet of Things applications, and more.

That does not mean Rust is automatically the best language for every project. It means the language is used across a broader range of work than the label “systems language” suggests.

You do not need to decide whether Rust is “for you” yet.

The fastest way to make the word Rust less abstract is to run one tiny program. The next pages show what people actually build, then let you try Rust in the browser before you install anything.

PRIMARY SOURCES

Where this explanation is grounded