Glossary A to Z 📖
Every term this school teaches, in plain English, with a link to the lesson that covers it properly. Forgetting vocabulary is normal; looking it up is what professionals do all day.
- anyhow
- The go-to crate for error handling in applications: one flexible error type plus
.context()to wrap errors in human-readable story. Lesson 20 - API
- The set of functions or endpoints some code offers for others to call. A library has an API; so does a web service. Foundations 2
- Argument
- A value you pass into a function when calling it. The function receives it as a parameter. Lesson 4
- Arc
- Atomic reference counting. Like
Rc, but safe to share across threads. Usually paired with aMutex. Lesson 16 - Array
- A fixed-size collection of values of the same type, written
[1, 2, 3]. For a growable list, use aVec. Lesson 3 - async / await
asyncmarks a function that can pause while it waits;.awaitmarks where. The machinery behind every Rust web service. Lesson 21- Binary (executable)
- The compiled, runnable output of your program, as opposed to the source code you wrote. Foundations 2
- Binary (number system)
- Counting with only 1s and 0s, matching the on/off switches inside a computer. Foundations 1
- Bit / Byte
- A bit is one on/off switch. A byte is eight of them. Type names like
i32say how many bits a number occupies. Foundations 1 - bool
- The type holding only
trueorfalse. Every comparison produces one. Lesson 3 - Borrow
- Using a value through a reference without taking ownership of it. Written
&value. Lesson 7 - Borrow checker
- The part of the compiler that enforces the borrowing rules: many readers or one writer, and no reference outliving its data. Lesson 7
- Box
- The simplest smart pointer: puts a value on the heap with a single owner. Essential for recursive types. Lesson 15
- Branch (git)
- A parallel timeline of commits, letting you experiment without touching the main line of work. Foundations 3
- Bug
- Any behavior you did not intend. Hunting one down is debugging. Foundations 5
- Cargo
- Rust's build tool and project manager: creates projects, compiles, tests, formats, and fetches libraries. Lesson 1
- char
- A single character, in single quotes:
'A','🦀'. Lesson 3 - Closure
- A small unnamed function you can store in a variable, which can capture variables from the surrounding scope. Lesson 14
- Clone
- Making a real, independent copy of a value, so both the original and the copy stay valid. Lesson 6
- Commit
- A snapshot of your project at a moment in time, with a message explaining why. Foundations 3
- Compiler
- The program that translates your source code into machine code. Rust's is
rustc. Foundations 1 - Concurrency
- Doing several things at once, usually with threads. Rust checks it at compile time, hence "fearless". Lesson 16
- Constant
- A value that can never change, declared with
constand named in SCREAMING_SNAKE_CASE. Lesson 2 - CPU
- The processor: the chef that executes instructions, billions per second. Modern ones have several cores. Foundations 1
- Crate
- A Rust package. Public ones live on crates.io; over 300,000 of them. Lesson 17
- Data race
- Two threads touching the same data at once, at least one writing. Impossible in safe Rust. Lesson 16
- Dependency
- A library your project relies on, listed in
Cargo.tomland fetched by Cargo. Foundations 2 - derive
- An attribute asking the compiler to write a trait implementation for you, like
#[derive(Debug)]. Lesson 8 - Diff
- The line-by-line difference between two versions of a file. Foundations 3
- DRY
- Don't Repeat Yourself. Extract repeated code into a function so there is one place to fix it. Foundations 4
- Enum
- A type whose value is exactly one of a fixed set of variants, each able to carry its own data. Lesson 9
- Expression
- Code that produces a value. The last expression in a function, without a semicolon, is its return value. Lesson 4
- f64
- The default type for decimal numbers. Lesson 3
- FFI
- Foreign function interface: calling code written in other languages, usually C, via
extern "C"blocks. Every such call isunsafe. Lesson 22 - Function
- A named, reusable block of instructions, declared with
fn. Lesson 4 - Future
- The value an
async fnreturns: a description of work that runs only when.awaited. Lazy, like iterators. Lesson 21 - Garbage collector
- A background process that frees unused memory in some languages. Rust does not need one; ownership handles it. Lesson 6
- Generic
- A type placeholder like
T, letting one piece of code work with many types. Lesson 12 - git
- The version control system the whole industry uses: snapshots, branches, and history. Foundations 3
- GitHub
- A website hosting git repositories, for collaboration and as a public portfolio. Foundations 3
- Grapheme cluster
- One visible symbol that may be several
chars glued together, like some emoji. The layer of text abovechar. Lesson 18 - HashMap
- A collection mapping keys to values, like a dictionary. Lesson 10
- Heap
- The flexible region of memory for data whose size can grow, such as
StringandVeccontents. Lesson 6 - i32
- The default integer type: whole numbers, positive or negative. Lesson 3
- Immutable
- Unable to be changed. Rust variables are immutable unless declared
mut. Lesson 2 - Iterator
- Something that hands out items one at a time, and can be chained with adaptors like
mapandfilter. Lesson 14 - KISS
- Keep It Simple. The boring readable version beats the clever unreadable one. Foundations 4
- Lifetime
- How long a reference is valid. Written
'awhen the compiler needs help connecting inputs to outputs. Lesson 13 - Linter
- A tool that flags working-but-unidiomatic code. Rust's is
cargo clippy. Foundations 4 - Machine code
- The raw numeric instructions a CPU executes directly. Foundations 1
- Macro
- Code that writes code at compile time. Marked with
!, as inprintln!. Lesson 1 - match
- Rust's pattern-matching decision maker. It must be exhaustive: every possible case covered. Lesson 9
- Match guard
- An extra
ifbolted onto a match arm:x if x % 2 == 0. The pattern grabs the value, the guard gets a vote. Lesson 19 - Memory safety
- Freedom from bugs like use-after-free and buffer overflows. Rust guarantees it at compile time. Lesson 6
- Merge conflict
- When two timelines edit the same line and git asks a human to choose. Routine, not a disaster. Foundations 3
- Module
- A named grouping of related code, declared with
mod. Items are private unless markedpub. Lesson 17 - Move
- Transferring ownership of a value. The original variable becomes unusable. Lesson 6
- mut
- The keyword marking a variable or reference as changeable. Lesson 2
- Mutex
- Mutual exclusion. A lock ensuring only one thread touches shared data at a time. Lesson 16
- Open source
- Code whose source is public for anyone to read, use, and improve. Rust itself is open source. Foundations 2
- Option
- The enum for a value that may be absent:
Some(value)orNone. Rust's replacement for null. Lesson 9 - Or-pattern
- Matching any of several patterns in one arm:
10 | 20 | 30. Lesson 19 - Ownership
- Rust's core idea: every value has one owner, and is freed when that owner goes out of scope. Lesson 6
- Panic
- An unrecoverable error that stops the program immediately with a message. Lesson 11
- Path
- An address for a file or folder, written with slashes. Foundations 2
- Profiling
- Measuring where a program actually spends its time instead of guessing. Tools:
cargo flamegraph, criterion. Lesson 23 - Pull request
- A proposed change offered for review before merging. How most open-source contribution happens. Foundations 3
- Raw pointer
*const T/*mut T: an address with no safety promises, like C pointers. Creating one is safe; dereferencing needsunsafe. Lesson 22- Rc
- Reference counted. Allows several owners of one value in a single thread; freed when the last one goes. Lesson 15
- Reference
- A way to access a value without owning it, written
&valueor&mut value. Lesson 7 - RefCell
- Moves borrow checking from compile time to runtime, allowing mutation through a shared handle. Lesson 15
- Release build
cargo build --release: full optimization on. Debug builds can be 1000x slower; never benchmark without this flag. Lesson 23- Repository (repo)
- A folder whose history git tracks. Foundations 3
- Result
- The enum for an operation that may fail:
Ok(value)orErr(error). Lesson 11 - Runtime
- While the program is running, as opposed to compile time. In async Rust the word also means the task scheduler, like tokio. Foundations 2
- Scope
- The region between braces where a variable exists. Values are dropped when their scope ends. Lesson 6
- Semantic versioning
- MAJOR.MINOR.PATCH version numbers, promising what a release will break. Foundations 4
- Shadowing
- Reusing a name with a new
let, creating a fresh variable that may even change type. Lesson 2 - Slice
- A borrowed view into part of a collection or string, like
&numbers[1..4]. Lesson 7 - Smart pointer
- A type that points at data and manages it, such as
Box,Rc, andRefCell. Lesson 15 - Stack
- The fast, fixed-size region of memory holding simple values and function bookkeeping. Lesson 6
- String
- Owned, growable text stored on the heap. Lesson 10
- &str
- A borrowed view into text that lives elsewhere. Preferred for function parameters. Lesson 10
- Struct
- Your own type, bundling related named fields together. Lesson 8
- Syntax
- The grammar rules of a language. Breaking them produces a syntax error. Foundations 2
- Terminal / Shell
- The text window where you type commands, and the program that interprets them. Foundations 2
- Test
- Code that checks your code, marked
#[test]and run withcargo test. Lesson 17 - thiserror
- The go-to crate for error types in libraries: derive
Displayand conversions from attributes on your error enum. Lesson 20 - Thread
- An independent stream of execution, letting a program use several CPU cores. Lesson 16
- tokio
- The standard async runtime: the scheduler that pauses and resumes thousands of tasks on a handful of threads. Lesson 21
- Trait
- A shared capability that types can implement, like an interface. Lesson 12
- Trait bound
- A requirement on a generic type, as in
T: PartialOrdmeaning "any T that can be compared". Lesson 12 - Tuple
- A fixed bundle of values of possibly different types, like
("Rusty", 42, true). Lesson 3 - Type
- What kind of thing a value is, determining what you can do with it and how much memory it needs. Lesson 3
- unsafe
- A fenced block granting exactly five extra powers (raw pointer derefs, unsafe calls, and friends) that you now vouch for. Ownership and types stay checked. Lesson 22
- unwrap
- Takes the value out of an
OptionorResult, crashing if there isn't one. Convenient in experiments, risky in real code. Lesson 11 - UTF-8
- How Rust stores text: one character takes 1 to 4 bytes, so byte count and letter count differ, and you cannot index a string. Lesson 18
- Variable
- A named place holding a value, created with
let. Lesson 2 - Vec
- A growable list of values of one type. Lesson 10
- Version control
- Tooling that tracks a project's history over time. In practice, git. Foundations 3
- WebAssembly (WASM)
- A format letting compiled languages like Rust run inside web browsers. Home
- YAGNI
- You Aren't Gonna Need It. Build what today needs, not what tomorrow might. Foundations 4
- Zero-cost abstraction
- High-level code that compiles down to machine code as fast as hand-written low-level code. Generics and iterators are both examples, and Lesson 23 verifies the claim with a stopwatch. Lesson 12 · Lesson 23
- ? (question mark operator)
- Shorthand for error handling: return the error to the caller, or unwrap the success and continue. Lesson 11
No terms match that. Try a shorter word. 🦀
💡 Still stuck on a word?
Every term here links to the lesson that teaches it properly. For anything
beyond this course, the
standard library docs
are searchable and surprisingly readable.