📖 Guide

Rust — Complete Reference

Comprehensive Rust language cheat sheet covering ownership, traits, pattern matching, concurrency, and more.

137 commands across 12 categories

Basics

CommandDescription
let x = 5;
Immutable variable binding
let mut x = 5;
Mutable variable binding
const MAX: u32 = 100;
Compile-time constant (must be type-annotated)
static GLOBAL: &str = "hi";
Static variable with 'static lifetime
let x: i32 = 42;
Explicit type annotation
let (x, y) = (1, 2);
Destructuring assignment
let x = { let y = 5; y + 1 };
Block expression (last expression is the value)
fn add(a: i32, b: i32) -> i32 { a + b }
Function definition with return type
let s = String::from("hello");
Create owned String from string literal
println!("x = {x}, y = {}", y);
Print with inline and positional formatting
type Km = i32;
Type alias
let _ = expensive_call();
Discard a value (suppress unused warnings)

Ownership & Borrowing

CommandDescription
let s2 = s1;
Move ownership — s1 is no longer valid
let s2 = s1.clone();
Deep copy — both s1 and s2 are valid
fn foo(s: &String)
Immutable borrow (shared reference)
fn foo(s: &mut String)
Mutable borrow (exclusive reference)
let r = &x;
Create an immutable reference
let r = &mut x;
Create a mutable reference (x must be mut)
fn first(s: &str) -> &str
Lifetime elision — compiler infers lifetimes
fn foo<'a>(x: &'a str) -> &'a str
Explicit lifetime annotation
struct Foo<'a> { part: &'a str }
Struct holding a reference needs a lifetime parameter
'static
e.g. let s: &'static str = "hello";
Lifetime that lives for the entire program duration

Structs & Enums

CommandDescription
struct Point { x: f64, y: f64 }
Named-field struct
struct Color(u8, u8, u8);
Tuple struct
struct Unit;
Unit struct (zero-sized)
let p = Point { x: 1.0, y: 2.0 };
Struct instantiation
let p2 = Point { x: 3.0, ..p };
Struct update syntax (copy remaining fields)
impl Point { fn dist(&self) -> f64 { ... } }
Method definition with impl block
enum Direction { Up, Down, Left, Right }
Simple enum
enum Option<T> { Some(T), None }
Enum with data (generic)
enum Message { Quit, Move { x: i32, y: i32 }, Write(String) }
Enum variants can hold different types of data
#[derive(Debug, Clone, PartialEq)]
Auto-derive common traits for structs/enums

Pattern Matching

CommandDescription
match value { pattern => expr }
Match expression — must be exhaustive
match x { 1 => "one", 2 => "two", _ => "other" }
Match with wildcard catch-all
match pair { (0, y) => println!("y={y}"), _ => {} }
Destructure tuples in match
match opt { Some(x) => x, None => 0 }
Match on Option
match x { 1..=5 => "small", _ => "big" }
Range pattern (inclusive)
match x { n if n < 0 => "neg", _ => "pos" }
Match guard (extra condition)
match s { Point { x, y: 0 } => ... }
Destructure struct fields in match
if let Some(v) = optional { ... }
if let — match single pattern, ignore rest
while let Some(v) = stack.pop() { ... }
while let — loop while pattern matches
let (a, b, ..) = (1, 2, 3, 4);
Rest pattern — ignore remaining fields
match x { val @ 1..=5 => println!("{val}"), _ => {} }
@ binding — bind matched value to a name

Error Handling

CommandDescription
Result<T, E>
Type for recoverable errors: Ok(T) or Err(E)
Option<T>
Type for optional values: Some(T) or None
let f = File::open("a.txt")?;
? operator — propagate error to caller
.unwrap()
Get inner value or panic if Err/None
.expect("msg")
Like unwrap but with a custom panic message
.unwrap_or(default)
Get inner value or use provided default
.unwrap_or_else(|| compute())
Get inner value or compute default lazily
panic!("crash")
Unrecoverable error — unwind and abort
.map_err(|e| MyError::from(e))
Transform the error type of a Result
impl From<io::Error> for MyError { ... }
Enable automatic error conversion with ?
Box<dyn std::error::Error>
Trait object for any error type (quick prototyping)

Traits & Generics

CommandDescription
trait Summary { fn summarize(&self) -> String; }
Define a trait with a required method
impl Summary for Article { fn summarize(&self) -> String { ... } }
Implement a trait for a type
trait Summary { fn summarize(&self) -> String { String::from("...") } }
Trait with a default method implementation
fn notify(item: &impl Summary)
impl Trait syntax — accept any type implementing Summary
fn notify<T: Summary>(item: &T)
Trait bound syntax (equivalent to impl Trait)
fn foo<T: Clone + Debug>(x: T)
Multiple trait bounds with +
fn foo<T>(x: T) where T: Clone + Debug
where clause for cleaner bounds
fn largest<T: PartialOrd>(list: &[T]) -> &T
Generic function with trait bound
struct Wrapper<T> { value: T }
Generic struct
impl<T: Display> ToString for T { ... }
Blanket implementation
fn returns() -> impl Summary
Return an opaque type implementing a trait
dyn Trait
e.g. Box<dyn Summary>
Trait object for dynamic dispatch

Collections

CommandDescription
let v: Vec<i32> = Vec::new();
Create empty vector
let v = vec![1, 2, 3];
Create vector with macro
v.push(4);
Append element to vector
v.pop()
Remove and return last element (Option<T>)
&v[0] / v.get(0)
Index access (panics) vs safe access (returns Option)
let mut map = HashMap::new();
Create empty HashMap
map.insert(key, value);
Insert or overwrite entry
map.entry(key).or_insert(default)
Insert only if key doesn't exist
map.get(&key)
Look up value (returns Option<&V>)
let set: HashSet<i32> = HashSet::new();
Create empty HashSet
let vd: VecDeque<i32> = VecDeque::new();
Double-ended queue
let bmap: BTreeMap<K, V> = BTreeMap::new();
Sorted map (keys implement Ord)

Iterators & Closures

CommandDescription
let add = |a, b| a + b;
Closure (anonymous function)
let add = |a: i32, b: i32| -> i32 { a + b };
Closure with explicit type annotations
move || { println!("{x}"); }
move closure — takes ownership of captured variables
.iter()
Iterate over immutable references (&T)
.iter_mut()
Iterate over mutable references (&mut T)
.into_iter()
Iterate by consuming (takes ownership)
.map(|x| x * 2)
Transform each element
.filter(|x| x > &5)
Keep elements matching predicate
.collect::<Vec<_>>()
Consume iterator into a collection
.fold(0, |acc, x| acc + x)
Reduce to single value with accumulator
.enumerate()
Yield (index, value) pairs
.zip(other)
Pair elements from two iterators
.flat_map(|x| x.chars())
Map then flatten nested iterators
.any(|x| x > 5) / .all(|x| x > 0)
Short-circuit boolean checks

Modules & Crates

CommandDescription
mod my_module;
Declare module (loads from my_module.rs or my_module/mod.rs)
mod inner { pub fn hello() {} }
Inline module definition
pub fn / pub struct / pub enum
Make items public (private by default)
pub(crate) fn internal()
Visible within the crate only
use std::collections::HashMap;
Bring item into scope
use std::io::{self, Read, Write};
Import multiple items from same path
use crate::utils::helper;
Absolute path from crate root
use super::parent_fn;
Relative path to parent module
pub use crate::inner::Thing;
Re-export — expose item at a different path
extern crate serde;
Link external crate (rarely needed in edition 2021+)

Concurrency

CommandDescription
std::thread::spawn(|| { ... })
Spawn a new OS thread
handle.join().unwrap()
Wait for thread to finish
let (tx, rx) = mpsc::channel();
Create message-passing channel
tx.send(val).unwrap()
Send value through channel (moves ownership)
rx.recv().unwrap()
Blocking receive from channel
Arc::new(data)
Atomic reference counted pointer (thread-safe Rc)
Arc::clone(&arc)
Clone Arc (increments reference count)
Mutex::new(data)
Mutual exclusion lock
let val = mutex.lock().unwrap();
Acquire mutex lock (blocks until available)
RwLock::new(data)
Reader-writer lock (multiple readers OR one writer)
async fn fetch() -> Result<()> { ... }
Async function (returns a Future)
value.await
Await a Future inside an async context

Macros

CommandDescription
println!("Hello, {name}!");
Print to stdout with newline
eprintln!("error: {e}");
Print to stderr
format!("x = {x}")
Format string into String (no I/O)
dbg!(&value)
Debug print with file/line info (returns value)
todo!()
Placeholder — compiles but panics at runtime
unimplemented!()
Placeholder for code not yet written — panics at runtime
assert!(condition);
Panic if condition is false
assert_eq!(a, b);
Panic if a != b (shows both values)
vec![1, 2, 3]
Create Vec from literal values
cfg!(target_os = "linux")
Compile-time configuration check (returns bool)
#[cfg(test)] mod tests { ... }
Conditional compilation — only in test builds

Common Std Library

CommandDescription
String::from("hello") / "hello".to_string()
Create owned String from &str
s.as_str() / &s
Borrow String as &str
s.contains("world")
Check if string contains substring
s.split(',').collect::<Vec<&str>>()
Split string by delimiter
s.trim() / s.trim_start() / s.trim_end()
Remove whitespace
s.replace("old", "new")
Replace all occurrences in string
fs::read_to_string("file.txt")?
Read entire file to String
fs::write("file.txt", contents)?
Write string to file (creates/overwrites)
Path::new("/tmp/foo.txt").exists()
Check if path exists
std::env::args().collect::<Vec<String>>()
Get command-line arguments
std::time::Instant::now()
High-precision monotonic clock
duration.as_secs() / .as_millis()
Convert Duration to numeric

More Guides

🌿
Git Commands
Complete Git command reference — from basics to advanced workflows. Searchable, with examples.
📝
Vim Commands
Complete Vim/Vi command reference — modes, motions, editing, search, and advanced features.
🐳
Docker Commands
Complete Docker & Docker Compose command reference — containers, images, volumes, networks, and orchestration.
🔤
Regex Reference
Complete regular expression reference — syntax, patterns, quantifiers, groups, lookaheads, and common recipes.
🐧
Linux Commands
Complete Linux/Bash command reference — file management, text processing, networking, system admin, and shell scripting.
☸️
Kubernetes Commands
Complete Kubernetes & kubectl command reference — pods, deployments, services, configmaps, and cluster management.
🐍
Python Reference
Complete Python reference — syntax, data structures, string methods, file I/O, comprehensions, and common patterns.
🗃️
SQL Reference
Complete SQL reference — queries, joins, aggregation, subqueries, indexes, and database management.
🌐
Nginx Reference
Complete Nginx configuration reference — server blocks, locations, proxying, SSL, load balancing, and caching.
🔐
SSH Commands
Complete SSH reference — connections, key management, tunneling, config, SCP/SFTP, and security hardening.
👷
Jenkins Reference
Complete Jenkins reference — pipeline syntax, Jenkinsfile, plugins, CLI, agents, and CI/CD patterns.
📨
HTTP Headers Reference
Complete HTTP headers reference — request headers, response headers, caching, security, CORS, and content negotiation. Searchable, with examples.
🐘
PostgreSQL Reference
Comprehensive PostgreSQL reference — from connection basics to advanced features like JSONB, full-text search, window functions, and performance tuning.
Async Patterns Reference
Multi-language async/concurrency patterns — JavaScript, Python, Go, Rust, Java, and universal concurrency patterns.
📡
Protobuf & gRPC Reference
Comprehensive reference for Protocol Buffers (proto3) and gRPC — message definitions, services, streaming, and common patterns.
📚
JS Array Methods
Complete JavaScript Array methods reference — creating, searching, transforming, sorting, iterating, and common patterns. Searchable, with examples.
🌊
Tailwind CSS Reference
Complete Tailwind CSS reference — layout, spacing, typography, colors, responsive design, states, and common patterns. Searchable, with examples.
GraphQL Reference
Complete GraphQL reference — schema definition, types, queries, mutations, directives, fragments, and common patterns. Searchable, with examples.
💻
VS Code Shortcuts
Complete VS Code keyboard shortcuts — editing, navigation, search, multi-cursor, terminal, debug, and more. Searchable, with Cmd/Ctrl notation.
🔲
CSS Grid Reference
Complete CSS Grid reference — container properties, item placement, grid functions, and common layout patterns. Searchable, with examples.
📦
CSS Flexbox Reference
Complete CSS Flexbox reference — container properties, item properties, and common layout patterns. Searchable, with examples.
⚛️
React Hooks Reference
Complete React Hooks reference — useState, useEffect, useContext, custom hooks, and common patterns. Searchable, with examples.
🔷
TypeScript Reference
Complete TypeScript reference — types, interfaces, generics, utility types, and advanced patterns. Searchable, with examples.
☁️
AWS CLI Reference
Complete AWS CLI reference — EC2, S3, IAM, Lambda, ECS, RDS, CloudFormation, and common operations.
🐹
Go Reference
Complete Go (Golang) reference — syntax, types, functions, concurrency, error handling, and common patterns.
💠
PowerShell Reference
Complete PowerShell reference — cmdlets, pipelines, scripting, file operations, remote management, and Active Directory.
💾
Redis Commands
Complete Redis command reference — strings, hashes, lists, sets, sorted sets, pub/sub, transactions, and server management.
🏗️
Terraform Commands
Complete Terraform reference — init, plan, apply, state management, modules, workspaces, and HCL syntax.
⚙️
Ansible Commands
Complete Ansible reference — playbooks, modules, inventory, roles, vault, and ad-hoc commands.
🟨
JavaScript
Complete JavaScript reference — variables, types, operators, strings, arrays, objects, functions, async, DOM, ES6+, and more.
🎨
CSS
Complete CSS reference — selectors, box model, positioning, typography, animations, media queries, custom properties, and more.
📄
HTML
Complete HTML reference — document structure, text content, forms, media, semantic elements, accessibility, and more.
Java
Complete Java reference — data types, strings, collections, OOP, interfaces, exceptions, file I/O, streams, lambdas, and more.
💻
Bash
Complete Bash reference — variables, strings, arrays, conditionals, loops, functions, file tests, I/O redirection, process management, and more.
📝
Markdown
Complete Markdown syntax reference for headings, formatting, links, tables, code blocks, and extensions.
📋
YAML
YAML syntax reference covering scalars, collections, anchors, multi-line strings, and common patterns.
🌐
Curl
Curl command-line reference for HTTP requests, authentication, file transfers, debugging, and common API patterns.
Cron
Cron scheduling reference covering syntax, field values, crontab management, and common schedule patterns.
🖥️
Tmux
Terminal multiplexer for managing multiple sessions, windows, and panes from a single terminal.
🔧
Awk
Powerful text processing language for pattern scanning, data extraction, and report generation.
✂️
Sed
Stream editor for filtering and transforming text, line by line.
🔍
Find
Search for files and directories in a directory hierarchy with powerful filtering options.
🔎
Grep
Search text using patterns. Filter lines from files, command output, or streams with regular expressions.
🐘
PHP
Complete PHP cheat sheet covering syntax, OOP, arrays, PDO, and modern PHP 8.x features.
⚙️
C
Complete C programming cheat sheet covering syntax, pointers, memory management, and standard library.
🔷
C++
Complete C++ cheat sheet covering STL containers, OOP, templates, smart pointers, and modern C++ features.
🐬
MySQL
Complete MySQL cheat sheet covering queries, joins, indexes, transactions, and administration.
💅
Sass
Complete Sass/SCSS cheat sheet covering variables, mixins, functions, nesting, and modern module system.
🔐
Chmod
Linux file permission commands and patterns for chmod.
🔢
NumPy
Essential NumPy commands for array manipulation and numerical computing in Python.
🐼
Pandas
Pandas cheat sheet for data manipulation, analysis, and transformation in Python.
🎯
Dart
Dart language cheat sheet covering syntax, types, OOP, null safety, and async patterns.
🔺
Laravel
Laravel PHP framework cheat sheet for routing, Eloquent, Blade, Artisan, and more.
🟩
Node.js
Comprehensive Node.js runtime reference covering modules, file system, HTTP, streams, and more.
Next.js
Next.js App Router reference covering routing, data fetching, server components, and deployment.
🍃
MongoDB
MongoDB reference covering CRUD operations, aggregation, indexes, and administration.
🔥
Firebase
Firebase reference covering Authentication, Firestore, Realtime Database, Cloud Functions, and Hosting.
🐳
Docker Compose
Docker Compose reference covering CLI commands, service configuration, networking, volumes, and more.
💲
jQuery
Quick reference for jQuery selectors, DOM manipulation, events, AJAX, and more.
📐
LaTeX
Quick reference for LaTeX document structure, math mode, formatting, and common packages.
🎯
XPath
Quick reference for XPath expressions, axes, predicates, and functions for XML/HTML querying.
Emmet
Quick reference for Emmet abbreviations for lightning-fast HTML and CSS coding.
📦
TOML
Quick reference for TOML configuration file syntax, types, tables, and common patterns.
💎
Prisma
Complete Prisma ORM cheat sheet — schema, queries, migrations, and CLI.
🤖
GitHub Actions
Complete GitHub Actions cheat sheet — workflows, triggers, jobs, and CI/CD patterns.
📦
npm
Complete npm cheat sheet — package management, scripts, publishing, and configuration.
Supabase
Complete Supabase cheat sheet — auth, database, realtime, storage, and edge functions.
🪶
Apache
Complete Apache HTTP Server cheat sheet — virtual hosts, modules, rewrite rules, and SSL.
📡
HTTP Status Codes
Complete reference of all standard HTTP response status codes with descriptions and use cases.
🔤
ASCII Table
Complete ASCII character reference with decimal, hexadecimal, and character values.
🔧
Chrome DevTools
Essential Chrome DevTools shortcuts, commands, and workflows for web developers.
💧
Drizzle ORM
Complete Drizzle ORM reference for schema definition, queries, relations, migrations, and common patterns.
Vercel CLI
Complete Vercel CLI reference for deployment, project management, domains, environment variables, and configuration.
🔄
PM2
Production process manager for Node.js applications with built-in load balancer, monitoring, and zero-downtime reloads.
📺
Screen
GNU Screen terminal multiplexer for persistent sessions, window management, and remote work.
📦
Webpack
Module bundler for JavaScript applications — loaders, plugins, code splitting, optimization, and dev server.
Vite
Next-generation frontend build tool with instant HMR, native ES modules, and optimized production builds via Rollup.

📖 Free, searchable command reference. Bookmark this page for quick access.