Curated collection of resources to learn Rust.
⬇️ Tags legend at the end of the page.
[:exclamation:] We condemn in the strongest possible terms Russia’s :pirate_flag: unprovoked, unjust and illegal invasion of Ukraine, a sovereign and democratic state. All Russian-language materials are published for educational purposes only.
( general ) ( official ) ( course )
- The Rust Programming Language 🇬🇧 🏴☠️ ( reading )
- Rust by Example 🇬🇧 🏴☠️ ( reading )
- Rust cookbook 🇬🇧 🏴☠️ ( reading )
- The Rust Programming Reference 🇬🇧 ( reading ) ( reference )
- Codebase Reference 🇬🇧 ( reading ) ( reference )
( general ) ( course )
- ⭐ Intro to Rust by Tensor Programming ( 🎥 )
- Rust Tutorial by Doug Milford ( 🎥 )
- The Rust Lang Book by Let's Get Rusty ( 🎥 )
- Rust Programming Tutorial by dcode ( 🎥 )
- Easy Rust by mithradates ( 🎥 )
- Easy Rust by David MacLeod ( reading )
- Программирование на Rust by Computer Science Center ( 🎥 ) ( non-eng )
- A Gentle Introduction to Rust ( reading )
- Rust by Tutorials Point ( reading )
- Rust by RIP Tutorial ( reading )
- Take your first steps with Rust by Microsoft Learn ( reading ) ( interactive )
- Rust Incubator by Instrumentisto Team ( reading )
- Rust Crash Course by Vandad Nahavandipoor ( video )
- Rust in 100 Seconds by Fireship ( video )
- Rust Tutorial by Derek Banas ( video )
( course ) ( advanced )
- ⭐ Crust of Rust by Jon Gjengset ( 🎥 ) ( general )
( course ) ( advanced )
- The Cargo Book ( reading )
- Asynchronous Programming in Rust 🇬🇧 🏴☠️ ( reading ) ( official ) ( general ) ( course ) ( advanced ) ( about:concurrency )
- Unsafe Code Guidelines Reference ( reading ) ( official )
- The Rustonomicon - nonsafe programming ( reading ) ( official )
- The Rust Performance Book ( reading )
- Compile-Time Reflection in Rust by Asbjørn Gaarde ( reading )
- The Little Book of Rust Macros ( reading )
- Guide to Rustc Development ( reading )
- API Guidelines ( reading )
- Command Line Applications ( reading )
( about:macro )
- The Little Book of Rust Macros ( reading )
( course ) ( about:webasm )
- ⭐ Rust and WebAssembly ( reading )
- The wasm-bindgen Guide ( reading )
- The Embedded Rust Book ( course ) ( reading )
( interactive )
- Rustlings ( official )
- Rust by Exercism
- Rust by practice by Sunface
- Rust playground ( official )
- Rust explaine
- Tour of Rust
- Rust Language Cheat Sheet by Ralf Biedert
- Memoty Layout by Raph Levien
- Cheat Sheet by don bright : basics
( algo )
( toy )
- Making our own executable packer by Amos ( reading ) ( course ) ( about:memory )
- Build a language VM by Fletcher Haynes ( reading ) ( course )
- Building a runtime reflection system for Rust by OSO
- Writing a Programming Language by Seán Kelleher ( 🎥 ) ( course )
- Safety in Systems Programming from Stanford University by Ryan Eberhardt and Julio Ballista ( reading ) ( course )
- Comp Sci Rust Programming Course from University of Pennsylvania's ( reading ) ( course )
- Refactoring to Rust by Lily Mara 📘 ( book ) ( reading ) ( advanced ) :
- r4cppp by Nick Cameron : Rust for C++ programmers
( about:setup )
- Install Rust ( official )
- Rustup book ( official ) ( reading ) ( course )
- How to install debugger on Windows by Doug Milford ( 🎥 ) ( article )
- How to install debugger on Linux by DevbaseMedia ( 🎥 ) ( article )
( about:cross_compile ) ( specific )
- rust-cross by Jorge Aparicio ( reading ) ( article )
- Cross-Compiling Rust from macOS To Linux by Omar Khawaja ( reading ) ( article )
- Cross compiling Rust from Linux to macOS by James Waples ( reading ) ( article )
- Cross compiling Windows binaries from Linux by Jake Shadle ( reading ) ( article )
( about:size_optimization )
- How to optimize size of binary executable by johnthagen ( reading ) ( article )
- How to optimize size of binary executable ( reading ) ( article )
- How to optimize size of WebAssembly binary executable ( reading ) ( article )
- Optimize Rust binaries size with cargo and Semver by Paul Delafosse ( reading ) ( article )
- Shrinking .wasm Code Size by Rust and WebAssembly ( reading ) ( article )
( about:size_optimization )
- Profile guided optimzation by Jakub Beránek ( reading ) ( article )
( about:concurrency )
- Async: What is blocking? by Alice Ryhl ( reading ) ( article ) ( introductory )
- Asynchronous Programming in Rust 🇬🇧 🏴☠️ ( reading ) ( official ) ( general ) ( course ) ( advanced )
- Pin and suffering ( reading ) ( advanced ) by Amos
- Workshop : implementing a chat server by Eliza Weisman ( reading ) ( teaching_materials )
( about:ownership_semantics )
- Deref vs AsRef vs Borrow vs Cow by Alex
- Understanding lifetimes in Rust by Thomas Heartman ( reading ) ( article )
- Common Rust Lifetime Misconceptions by pretzelhammer :
- Rust lifetimes book by okryvyts
( about:mem )
- ⭐ Visualizing memory layout of Rust's data types by Sreekanth ( 🎥 ) ( article ) : all about memory layout
- Refactoring to Rust by Lily Mara ( reading ) ( article )
- Strings in Rust by Erik Zivkovic ( reading ) ( article )
- Making our own executable packer by Amos ( reading ) ( course ) ( about:memory )
- Pointers Are Complicated by ralfj.de ( reading ) ( article )
- Pointers Are Complicated II, or: We need better language specs by ralfj.de ( reading ) ( article )
- Pointers Are Complicated III, or: Pointer-integer casts exposed by ralfj.de ( reading ) ( article )
( about:self_ref )
( about:closure )
- Finding Closure by Huon Wilson ( reading ) ( article )
- Understanding Closures by Andrew Pritchard ( reading ) ( article )
( about:web )
- Validating JSON input by Evaldas Buinauskas ( reading ) ( article )
- Web development with rust by Genus-v Programming ( 🎥 ) ( course )
( about:web ) ( about:web_frontend )
- Yew Crash Course by Jeff No Zhao ( 🎥 ) ( article )
- Rust + Elm : ( 🎥 )
- Overview of Elm : ( 🎥 )
( about:errors_handling )
( about:graphics )
- Learn Wgpu by sotrh : good introduction into wgpu ( reading ) ( course )
- WebGL water tutorial by Chinedu Francis Nwafili
- Unofficial Bevy Cheat Book by Ida Iyes
- Bevy Assets by Carter Anderson : collection of Bevy assets, plugins, learning resources, and apps
( predictions )
- History and Predictions ( 🎥 ) ( playlist )
- Why Isn't Functional Programming the Norm? by Richard Feldman ( 🎥 )
( teachings_material )
- Teaching Material by Ferrous
- Workshop : implementing a chat server by Eliza Weisman ( reading ) ( about:concurrency )
- ⭐ - fearured and strongly recommended
- ( general ) - general-purpose material
- ( specific ) - domain-specific material
- ( official ) - official Rust material
- ( non-eng ) - non-english language
- ( introductory ) - introductory level
- ( advanced ) - advanced level
- ( course ) - consists of series of text/video articles trying to give to a reader solid foundation
- ( book ) - a book
- ( reference ) - a reference
- ( article ) - either single article or single video-tutorial
- ( not-finished ) - not finished, too little to learn
- ( interactive ) - it is possible to interact and get feedback from the system
- ( reading ) - material to read
- ( 🎥 ) - material to watch
- ( audio ) - material to listen
- ( collection ) - list of resources
- ( newspaper ) - regularly updating list of articles
- ( project ) - project
- ( algo ) - algorithmic problems and solutions
- ( toy ) - educational toy projects
- ( predictions ) history and predictions
- ( teachings_material ) - Teaching materials and Workshops
- ( teaching_materials ) - teaching materials
- ( about:setup ) - how to install rust and setup your development environment
- ( about:cross_compile ) - how to build from one platform to another one
- ( about:mem ) - about memory management in Rust, the difference between heap, stack, code segments, etc
- ( about:size_optimization ) - size optimization
- ( about:concurrency ) - about asynchronous programming
- ( about:ownership_semantics ) - about owning/borrowing/lifetimes
- ( about:closure ) - about closures
- ( about:self_ref ) - about self-referential structures
- ( about:macro ) - about macros
- ( about:webasm ) - about WebAssembly
- ( about:web ) - web development
- ( about:graphics ) - graphics
- ( about:errors_handling ) - proper error handling