Glossary
This page isn't for reading cover to cover — it's for jumping: every term link in the chapters lands on an anchor here. Use it to do two things:
- Look a term up in its group (language / memory / abstraction / concurrency / project / LLM) and get a one-sentence definition.
- Most entries carry a chapter reference — follow it to the place that explains the term in full.
Anchor rules (the whole book links by them)
Every heading is its own anchor: lowercase English, hyphens between words — for example ownership and borrow checker. The Chinese edition lives at /glossary with identical structure and identical anchors. Three symbol-bearing terms follow the same rule: no_std, crates.io, and Cargo.lock anchor to #no-std, #crates-io, and #cargo-lock — underscores and dots both become hyphens.
Language Core
A · Language Core — The first layer of vocabulary you meet when reading Rust; most of it is worked through in Chapters 4–7 group by group. Three entries — closure, iterator, and Vec/HashMap — never get a section of their own: the chapters explain them inline where they're used (the map_err closure in Chapter 6, the .map/.collect pipeline in Chapter 14); come back here whenever you forget one.
let binding
let binding — Binds a value to a name with let; immutable by default.
mutability
mutability — Only mut allows in-place change; immutability is the default, not an omission.
shadowing
shadowing — A new let with the same name covers the old binding, and the type may change.
function
function — fn name(param: Type) -> ReturnType; parameter and return types are always explicit.
expression vs statement
expression vs statement — Expressions produce values (if, match, and blocks all do); statements only do work.
primitive types
primitive types — Integers (the u/i families), floats, bool, char, and the unit type ().
string slice
string slice — &str: a read-only view over UTF-8 bytes; it owns nothing.
String
String — The owned, growable UTF-8 string.
enum
enum — One type, one of several known variants; Option and Result are both enums.
struct
struct — An aggregate of named fields; its methods live in an impl block.
pattern matching
pattern matching — match / if let take a value apart by shape and bind variables; the compiler enforces exhaustiveness.
Option
Option — Option<T>: Some(v) or None — the stand-in for null.
Result
Result — Result<T, E>: Ok(v) or Err(e) — the carrier of recoverable errors.
question mark operator
question mark operator — ?: on error, return early with it; on success, unwrap and move on.
closure
closure — An anonymous function that captures its environment: |x| x + 1.
iterator
iterator — A lazy sequence plus the map / filter / collect pipeline; what a for loop runs on.
Vec and HashMap
Vec and HashMap — The two workhorse containers: a dynamic array and a hash map.
Memory Model
B · Memory Model — Where data lives, who owns it, and when it goes away; the spine of Chapter 5.
ownership
ownership — Every value has exactly one owner; when the owner leaves scope, the value is dropped.
move
move — Assignment or passing a value hands ownership over; the old name stops working.
borrowing
borrowing — Take a reference (&T read-only, &mut T writable) instead of taking ownership.
borrow checker
borrow checker — Enforces "many readers or one writer" at compile time; it stops data races, not you.
clone
clone — An explicit deep copy; a .clone() is always someone's deliberate decision to copy.
lifetime
lifetime — An annotation of how long a reference is valid; mostly inferred — just learn to recognize 'a.
heap and stack
heap and stack — The stack holds fixed-size data and call frames, the heap holds dynamic data; ownership decides when heap data is freed.
Drop
Drop — The cleanup callback that runs when a value leaves scope — Rust's shape of RAII.
Abstraction
C · Abstraction — Pulling behavior contracts out of concrete types; Chapters 6–7, where jackdaw's spine, trait Provider, grows.
trait
trait — A contract of behavior: a set of method signatures, implemented with impl Trait for Type.
derive
derive — #[derive(Debug, Clone)] has the compiler implement common traits for you.
generics
generics — Programming over "any type that meets the contract": fn f<T: Trait>, struct S<T>.
trait object
trait object — Box<dyn Trait>: one pointer that, at runtime, points at any implementer.
monomorphization
monomorphization — The compiler stamps out specialized code for each concrete type; this is where the speed comes from.
smart pointer
smart pointer — Pointers like Box, Rc, Arc that own data and manage its lifetime.
Arc
Arc — Atomic Reference Counting: the smart pointer for sharing ownership across threads.
Mutex
Mutex — The lock that admits one thread at a time; stored bound to the data it guards.
Concurrency and Async
D · Concurrency and Async — The words you need to serve many requests at once; introduced in Chapter 7, load-bearing in Chapters 12–14.
async fn
async fn — An async fn returns a Future and yields at each await.
Future
Future — A description of a value that arrives later; it does nothing until you await it.
runtime
runtime — The scheduler that drives Futures to completion; the standard library ships none, and Tokio is the de facto standard.
spawn
spawn — Hand an async task to the runtime to run concurrently.
mpsc channel
mpsc channel — A multi-producer, single-consumer queue for passing messages between tasks.
Send and Sync
Send and Sync — Marker traits for "safe to move / share across threads"; when they show up in an error, think "a data race just got blocked."
Stream
Stream — The async cousin of an iterator; an SSE response body is a Stream.
Project and Ecosystem
E · Project and Ecosystem — The Cargo world and the shipping pipeline; structure in Chapters 8–9, tests and releases in Chapter 15.
Cargo
Cargo — Build tool plus package manager; one command for building, testing, and dependencies.
manifest
manifest — Cargo.toml: the project's metadata and dependency declarations; Chapter 8 reads it line by line.
crate
crate — One compilation unit: a binary (executable) or a library (consumed by others).
package and module
package and module — A package is the crates.io publish unit; mod layers code inside a crate, use pulls in paths.
workspace
workspace — A way to organize multiple crates that share one target/ and one lockfile.
crates.io
crates.io — The official package registry; docs.rs builds API docs for every version automatically.
semver
semver — 1.6.3 = major.minor.patch; ^ / ~ state compatibility ranges.
Cargo.lock
Cargo.lock — Pins dependency versions exactly so builds reproduce.
feature
feature — An optional compile-time switch on a dependency, trimming it to what you need.
serialization
serialization — Converting in-memory data to and from TOML/JSON; jackdaw does it with serde (Chapters 6 and 11).
edition
edition — The language-level evolution unit (2015/2018/2021/2024); orthogonal to the compiler version.
fmt and clippy
fmt and clippy — cargo fmt makes formatting uniform; cargo clippy catches unidiomatic code.
tests
tests — #[test]: unit tests live next to the code in #[cfg(test)], integration tests in tests/.
mock
mock — A fake implementation that stands in for a real dependency (say, a real HTTP provider) during tests.
CI
CI — Checks that run automatically on push or PR; GitHub Actions defines them in YAML.
profile
profile — dev compiles fast, release optimizes; artifacts land under target/.
cross compilation
cross compilation — Building a binary for another platform from this one.
no_std
no_std — Environments (embedded, kernels) with no standard library — possibly not even an allocator.
FFI
FFI — The boundary where Rust and C call each other; the export surface of system-level libraries.
LLM Engineering
F · LLM Engineering — The jargon of the agent → gateway → provider chain; defined in Chapter 2, built in jackdaw across Chapters 10–14.
LLM
LLM — Large language model (a.k.a. model): predicts the next token from the token history; APIs reference it by model id.
provider
provider — Whoever serves a model API: OpenAI, Anthropic, OpenRouter, a local vLLM, and so on.
agent
agent — A program driving a model in a loop: send messages, run tools, feed results back, until the task is done.
tool call
tool call — The model's structured request "call this function for me"; the agent executes it and posts the result back.
token
token — The unit models process text in, roughly a word or a piece of one; billing and context both count in tokens.
context window
context window — The cap on how many tokens a model can see at once.
prompt
prompt — The user input; the system prompt is the hidden instruction that sets the model's role and behavior.
messages
messages — The structured conversation history, each entry tagged with a role (system / user / assistant / tool).
streaming
streaming — Server-sent events (SSE): the server pushes chunks as they're ready; no waiting for the full answer.
gateway
gateway — The always-on local forwarding service: one front door, many providers behind it; what jackdaw is (Chapter 14).
routing
routing — Deciding, by reference or by rule, which model serves this request.
routing group
routing group — group/<id> bundles several models under one name, with a strategy and failover (Chapter 13).
failover
failover — When the upstream fails, automatically try the next one on the list.
rotate
rotate / round-robin — Start each request at the next member in turn, spreading the load.
environment variable
environment variable — Process-level configuration; the standard home for secrets — never in code, never in config files.
API key
API key — The credential for paid APIs; jackdaw's config stores the variable's name and reads the value at runtime.
endpoint
endpoint — The address a service listens on, like 127.0.0.1:3426/v1/chat/completions.
OpenAI compatible
OpenAI compatible — The de facto standard chat-API shape; many services implement it, and jackdaw speaks it on both sides.
Wrapping up
- 77 terms in six groups, matching the book's layers; each of these 77 terms carries a link at its first appearance in the chapters, and those links land here.
- Group order is learning order: language and memory → abstraction and concurrency → project → LLM engineering.
- The Chinese edition has the same structure and the same anchors at
/glossary; whichever language you start from, the links hold.