Skip to content

Rust Roadmap

  • Roadmap: https://roadmap.sh/rust

1. Introduction

  • 1.1 What is Rust?
  • 1.2 Why use Rust?
  • 1.3 Environment Setup
  • 1.4 Installing Rust and Cargo
  • 1.5 IDEs and Rust Toolchains
  • 1.6 Rust REPL (Rust Playground)

2. Language Basics

2.1 Syntax and Semantics

  • 2.1.1 Variables, DataTypes and Constants
  • 2.1.2 Control Flow and Constructs
  • 2.1.3 Functions and Method Syntax
  • 2.1.4 Pattern Matching & Destructuring

2.2 Constructs

  • 2.2.1 Enums
  • 2.2.2 Traits
  • 2.2.3 Structs
  • 2.2.4 Impl Blocks

2.3 Data Structures

  • 2.3.1 Integers
  • 2.3.2 Floats
  • 2.3.3 Boolean
  • 2.3.4 Character
  • 2.3.5 String
  • 2.3.6 Tuple
  • 2.3.7 Array
  • 2.3.8 Vector
  • 2.3.9 Hashmap
  • 2.3.10 Hashset
  • 2.3.11 LinkedList
  • 2.3.12 Stack
  • 2.3.13 Queue
  • 2.3.14 Binary Heap

3. Ownership System

  • 3.1 Ownership Rules & Memory Safety
  • 3.2 Borrowing, References and Slices
  • 3.3 Deep Dive: Stack vs Heap

4. Advanced Topics

  • 4.1 BTreeMap
  • 4.2 BTreeSet
  • 4.3 RC
  • 4.4 Arc
  • 4.5 Mutex
  • 4.6 RwLock
  • 4.7 Channels

5. Error Handling

  • 5.1 Option and Result Enumerations
  • 5.2 Propagating Errors and ? Operator
  • 5.3 Custom Error Types and Traits

6. Modules & Crates

  • 6.1 Code Organization & Namespacing
  • 6.2 Dependency Management with Cargo
  • 6.3 Publishing on Crates.io

7. Testing

  • 7.1 Unit & Integration Testing
  • 7.2 Mocking & Property Based Testing

8. Concurrency & Parallelism

  • 8.1 Threads, Channels and Message Passing
  • 8.2 Atomic Operations & Memory Barriers
  • 8.3 Futures and Async/Await Paradigm

9. Traits & Generics

  • 9.1 Trait Definitions & Implementations
  • 9.2 Trait Bounds and Associated Types
  • 9.3 Generics & Type-Level Programming

10. Lifetimes & Borrow Checker

  • 10.1 Explicit Lifetime Annotations
  • 10.2 Lifetime Elision Rules
  • 10.3 Covariant & Contravariant Lifetimes

11. Macros & Metaprogramming

  • 11.1 Declarative Macros with macro_rules!
  • 11.2 Procedural Macros & Custom Derive
  • 11.3 Domain Specific Languages (DSLs)

12. Ecosystem and Libraries

12.1 Web Development

  • 12.1.1 Axum
  • 12.1.2 Actix
  • 12.1.3 Leptos
  • 12.1.4 Loco
  • 12.1.5 Rocket

12.2 Asynchronous Programming

  • 12.2.1 Tokio
  • 12.2.2 async-std
  • 12.2.3 smol

12.3 Networking

  • 12.3.1 reqwest
  • 12.3.2 hyper
  • 12.3.3 quinn

12.4 Serialization / Deserialization

  • 12.4.1 Serde
  • 12.4.2 json-rust
  • 12.4.3 toml-rust

12.5 Database and ORM

  • 12.5.1 Diesel
  • 12.5.2 sqlx
  • 12.5.3 rusqlite

12.6 Cryptography

  • 12.6.1 rust-crypto
  • 12.6.2 sodiumoxide
  • 12.6.3 ring

12.7 CLI Utilities

  • 12.7.1 structopt
  • 12.7.2 clap
  • 12.7.3 termion

12.8 Game Development

  • 12.8.1 bevy
  • 12.8.2 fyrox
  • 12.8.3 ggez
  • 12.8.4 macroquad
  • 12.8.5 wgpu-rs

12.9 GUI Development

  • 12.9.1 tauri
  • 12.9.2 gtk-rs
  • 12.9.3 relm

12.10 Embedded and Systems

  • 12.10.1 embedded-hal
  • 12.10.2 rppal
  • 12.10.3 nrf-hal

12.11 WebAssembly (WASM)

  • 12.11.1 wasm-bindgen
  • 12.11.2 wasm-pack
  • 12.11.3 wasmer

13. Debugging

  • 13.1 rust-gdb
  • 13.2 rust-lldb

14. Performance and Profiling

  • 14.1 Criterion.rs
  • 14.2 Documenting with rustdoc