Learning Guide to become Rustacean π¦
Learning Guide for Rustaceans
Installing Rust (rustup)
Rust Toolchain (cargo, rustc, rustfmt, clippy)
Project Structure (src/, Cargo.toml)
2. Rust Basics / Core Concepts
Variables & Mutability
Constants & Static Variables
Shadowing
Primitive Data Types
Complex Data Types (Arrays, Tuples, Slices, Strings)
Functions
Control Flow: if, match, loop, while, for
3. Ownership, Borrowing & Memory
Ownership
Borrowing (references, mutable references)
Move semantics
Copy vs Clone
Lifetimes
Memory Safety Rules
Stack vs Heap
Drop Trait and RAII Basics
4. Data Structures & Collections
Structs
Enums
Tuples
Pattern Matching & Destructuring
Collections (Vec, HashMap, HashSet, BTreeMap, etc.)
Option & Result
Iterators
Closures
Implementing Custom Types (impl, methods, associated functions)
5. Modules, Crates & Packages
Modules & Paths (mod, pub, super, crate)
Crates (binary vs library)
Packages & Workspaces
Re-exporting modules (pub use)
Standard Library Overview
Generics
Traits
Trait Objects (dyn Trait)
Associated Types
Type Aliases
Advanced Lifetimes
PhantomData
Sized / Unsized Types
Newtype Pattern
Result & Option
? operator
Panic & Unwinding
Custom Error Types (thiserror / anyhow)
Error Propagation Best Practices
8. Concurrency & Parallelism
Threads & Sync Primitives
Threads
Send & Sync
Arc
Mutex
RwLock
Condvar
Atomics
async / await
Futures
Executors (Tokio, async-std)
Channels (sync & async)
Select operations
Object-Oriented Programming Concepts
Functional Programming Concepts
Closures & Higher-Order Functions
9. Macros & Metaprogramming
Declarative Macros (macro_rules!)
Procedural Macros
Derive macros
Attribute macros
Function-like macros
Build scripts (build.rs)
9. Concurrency & Asynchronous Programming
Threads & Concurrency
async / await
Channels & Message Passing
Mutex & RwLock
10. File I/O, Serialization & Networking
File I/O (std::fs, std::io)
Reading/Writing text & binary files
Serialization / Deserialization with Serde
JSON, YAML, TOML
Building CLI tools
Networking (TCP, UDP, HTTP)
REST APIs (Axum, Actix, Rocket)
11. Functional & OOP-Inspired Paradigms
Closures
Higher-order functions
Iterator combinators
Composition over inheritance
Polymorphism through traits
12. Unsafe & Low-Level Rust
When to use Unsafe Rust
Raw pointers
unsafe blocks
FFI with C
Memory layout (repr)
Inline assembly
Zero-cost abstractions
13. Tooling, Debugging & Testing
Unit Testing
Integration Testing
Documentation Tests
Debugging (gdb/lldb)
Logging (tracing/log)
Profiling & Benchmarks
Linting (Clippy)
Formatting (rustfmt)
Rust Analyzer (LSP)
14. Architecture, CI/CD & DevOps
Organizing modules & workspace architecture
Release profiles
Cross-compilation
CI/CD pipelines for Rust
Dockerizing Rust applications
15. Interoperability & Ecosystem Skills
Python β Rust (PyO3, pyo3-maturin)
Node β Rust (NAPI-RS)
WASM (WebAssembly)
Embedding Rust in other languages
Calling Python/C++ from Rust
Additional Important Topics
Smart Pointers (Box, Rc, Arc, Weak)
Atomics & Memory Ordering
Data-Oriented Design (SoA vs AoS, SIMD)
cargo features & workspace patterns
Publishing crates
Popular libraries & frameworks:
Tokio
Axum
Serde
Clap
SQLX / SeaORM
Tonic (gRPC)
π§΅ Stack vs Heap
I have written the examples with AI / Data use cases
Framework
Purpose
tag
Tuari
to create small, fast, secure, cross-platform applications
cross-platform
dioxus
to building fullstack web, desktop, and mobile apps.
cross-platform
Burn
Deep learning framework like Pytorch for python
AI/ML
rig
Build modular and scalable LLM Applications in Rust
AI/LLM
axum
web application framework like fastapi in python
web
Yew
web assembly framework
web
leptos
web app framework similar like Yew
web
crux
Cross-platform app development in Rust
cross-platform
iced
Cross-platform GUI library
GUI
ratatui
Terminal User Interfaces
GUI
// toolchain commands
cargo new rust-learning --bin
cargo run
cargo new utils --lib
cargo run --example <filename>
cargo build --bin another-bin
cargo run --bin rust-learning
cargo run --bin another-bin
TODO: will have to convert into Macro.md file
π Support My Open source Work