Learn Rust

Rust is a systems programming language that gives you the speed and control of C or C++ while guaranteeing memory safety without a garbage collector.

What Is Rust?

Rust is a statically typed, compiled language originally created at Mozilla Research and now stewarded by the independent Rust Foundation. It was designed to answer a hard question: can a language be as fast and low-level as C++ while making it nearly impossible to write memory bugs like use-after-free, buffer overruns, and data races? Rust's answer is a compile-time checker called the borrow checker, which enforces strict rules about how memory is owned and accessed before your program ever runs.

Why Rust Exists

Traditional systems languages force a trade-off. C and C++ give you manual memory control and top-tier performance, but a single mistake with a pointer can crash your program or open a security hole. Languages like Java, Python, or Go solve memory safety with a garbage collector, but that collector adds runtime overhead and unpredictable pauses. Rust removes the trade-off: its ownership model checks memory safety at compile time, so there is no garbage collector and no runtime safety net needed. The cost is paid up front, by the compiler, not by your users at runtime.

  • Memory safety without garbage collection, verified at compile time
  • Performance comparable to C and C++ in real-world benchmarks
  • A strong static type system that catches bugs before deployment
  • Fearless concurrency: the same ownership rules that prevent memory bugs also prevent data races
  • A modern toolchain: one command installs the compiler, package manager, formatter, and linter
  • Zero-cost abstractions: high-level code compiles down to the same machine code you'd write by hand

Where Rust Is Used

Rust started as a language for building browser engines (Mozilla used it to build parts of Firefox's Servo engine) but has since spread into operating systems, game engines, blockchain platforms, command-line tools, web backends, and embedded devices. Companies including Microsoft, Amazon, Google, Discord, and Dropbox use Rust in production for components where correctness and speed both matter.

DomainExample Use Case
Operating systemsKernel modules and drivers where crashes are unacceptable
Web backendsHigh-throughput APIs and services
Command-line toolsFast, single-binary utilities (ripgrep, fd, bat)
WebAssemblyCompiling to run at near-native speed in the browser
Embedded systemsFirmware running on microcontrollers with no operating system

A First Look at Rust Code

Every Rust program starts execution in a function named main. The example below is the smallest complete Rust program you can write.

Hello, Rust

fn main() {
    println!("Hello from Rust!");
}

Notice the exclamation mark after println. That marks it as a macro rather than a regular function; macros generate code at compile time and are a core part of how Rust achieves zero-cost abstractions like formatted printing.

Rust variables are immutable by default

fn main() {
    let language = "Rust";
    let year_created = 2010;
    println!("{} first appeared in {}", language, year_created);
}

A simple calculation

fn main() {
    let cores = 8;
    let threads_per_core = 2;
    let total_threads = cores * threads_per_core;
    println!("Total logical threads: {}", total_threads);
}
Note: You can experiment with Rust instantly in your browser using the Rust Playground at play.rust-lang.org, without installing anything.
Note: Rust has topped Stack Overflow's 'Most Loved Language' survey for multiple years running, largely because of the confidence its compiler gives developers.

Exercise: Rust Introduction

What is Rust primarily designed to provide, compared to languages like C++?

Frequently Asked Questions

Is Rust hard to learn?
Harder than most, and the difficulty arrives early. Ownership and borrowing are unfamiliar even to experienced programmers, and the compiler refuses code that other languages would accept. Most people describe a slow first month followed by a sharp improvement.
What is the borrow checker?
The part of the compiler that enforces who owns each piece of data and who may reference it. It rejects programs that could lead to use-after-free or data races. Fighting it is normal at first; it is teaching you rules other languages leave to runtime.
What is Rust used for?
Systems work where both performance and safety matter: operating system components, browser engines, command-line tools, embedded devices and increasingly backend services. It is chosen where C or C++ would fit but memory bugs would be costly.
Should I learn C before Rust?
Not required, though C makes concepts like stack, heap and pointers concrete before Rust adds rules on top of them. Coming from a higher-level language, expect to learn those fundamentals and Rust's ownership model at the same time.