Introduction
Index of examples
Language
❱
Rust installation and first steps
Main function
Simple data types
Variables and constants
Ownership and borrowing
Slices
Functions
Control flow
Structs
Enums
Traits
Trait objects
Attributes
Generics
Lifetimes
Modules and use keyword
Pattern matching, if / while let
Closures
Iterators
Macros
Standard library
❱
Option
Result
Vectors
HashMap
Strings
Copy-on-write
Smart pointers
AsRef
Automatic trait derivation
Crates
❱
Crates (alphabetic)
Crates (by category)
Algorithms
❱
Generate random values
Sort a vector
Asynchronous
❱
Async
Async and traits
Tokio async runtime
Async channels
Streams
Futures crate
Mixing async and blocking code
Authentication
❱
Basic Authentication
Command-line interface
❱
Argument parsing
ANSI terminal
Terminal user interfaces
User interaction
Command-line utilities
❱
Filesystem
Networking
Shells
Compression
❱
Working with tarballs
Concurrency
❱
Explicit threads
Threadpools
Multithreading with crossbeam
Data parallelism
Message passing and Channels
Shared-state concurrency
Concurrent data structures
Send and Sync
Configuration
❱
Environment variables
Configuration management
Cryptography
❱
Hashing
Encryption
Data structures
❱
Bitfields
Maps
Stack-allocated arrays
UUIDs
Database access
❱
SQLite
Postgres
Connection pools
Query builders and ORMs
NoSQL
Search
Date and time
❱
Duration and calculation
Parsing and displaying
time crate
Development tools
❱
Cargo
❱
Package layout
Crate registries
Rust and binary installation
❱
Rustup
Code editing
Code formatting
Documentation
❱
mdBook
Badges
Versioning
Other
❱
Code building
Code verification
miri
Development tools - build-time tooling
❱
Build-time tools
Development tools - cargo plugins
❱
Writing code
Code formatting, linting
Building
Cross-compiling
Watching for changes
Improving performance
Auditing
Maintaining
Development tools - debugging, logging
❱
Tracing
Log messages
Logging configuration
Alternatives
Diagnostic functions
Encoding and serialization
❱
Character sets
CSV processing
Structured data
serde
Typecasting
Binary encoders
Error handling
❱
Error customization
File system
❱
Read & write
Current working directory
Directory traversal
Ignore files
File watching
Temporary files and directories
User directories
Hardware support
❱
Processor
Mathematics
❱
Linear algebra
Trigonometry
Complex numbers
Statistics
Additional numeric types
Memory management
❱
Global static
Lazy initialization
Operating systems
❱
External commands
Low-level system calls
Rust OSes
Rust patterns
❱
Design patterns
Functional programming
Rust idioms
Builder pattern
Template engines
❱
Tera
TinyTemplate
Text editors
❱
IDEs
Text processing
❱
Regular expressions
❱
Longer regex example
String parsing
String concatenation
Web programming
❱
Extracting links
URL
Media types
Web programming - HTTP clients
❱
HTTP clients
Making requests
Calling a web API
Downloads
Web programming - HTTP servers
❱
Axum
Actix
Other web frameworks
Static website generators
Middleware
CORS
Batteries-included frameworks
GraphQL
gRPC
hyper
Links
❱
Links
Example code
Cheat sheets
Blogs
Books
Companies
Learning
Contributing
❱
Topics of interest
Repository structure
Environment setup
Editing
Dev Containers and Docker
Optional preprocessors
API documentation
Crate publication
Index
Thanks
Light
Rust
Coal
Navy
Ayu
Rust How-to
Rust Cheatsheets
Cheatsheets
Comparison to other languages
Cheatsheets
cheats.rs
⮳
Rust for professionals
⮳
Comparison to other languages
Rust for C# developers
⮳
[rust_cheatsheets: add more (P1)](https://github.com/john-cd/rust_howto/issues/570)
A comparison of Rust’s borrow checker to the one in C#