Introduction – Rust for Python Programmers

linhns1 pts0 comments

Introduction - Rust for Python Programmers

Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Auto

Light

Rust

Coal

Navy

Ayu

Rust for Python Programmers

Rust for Python Programmers: Complete Training Guide

A comprehensive guide to learning Rust for developers with Python experience. This guide<br>covers everything from basic syntax to advanced patterns, focusing on the conceptual shifts<br>required when moving from a dynamically-typed, garbage-collected language to a statically-typed<br>systems language with compile-time memory safety.

How to Use This Book

Self-study format : Work through Part I (ch 1–6) first — these map closely to Python concepts you already know. Part II (ch 7–12) introduces Rust-specific ideas like ownership and traits. Part III (ch 13–16) covers advanced topics and migration.

Pacing recommendations:

ChaptersTopicSuggested TimeCheckpoint

1–4Setup, types, control flow1 dayYou can write a CLI temperature converter in Rust<br>5–6Data structures, enums, pattern matching1–2 daysYou can define an enum with data and match exhaustively on it<br>7Ownership and borrowing1–2 daysYou can explain why let s2 = s1 invalidates s1<br>8–9Modules, error handling1 dayYou can create a multi-file project that propagates errors with ?<br>10–12Traits, generics, closures, iterators1–2 daysYou can translate a list comprehension to an iterator chain<br>13Concurrency1 dayYou can write a thread-safe counter with Arc><br>14Unsafe, PyO3, testing1 dayYou can call a Rust function from Python via PyO3<br>15–16Migration, best practicesAt your own paceReference material — consult as you write real code<br>17Capstone project2–3 daysBuild a complete CLI app tying everything together

How to use the exercises:

Chapters include hands-on exercises in collapsible blocks with solutions

Always try the exercise before expanding the solution. Struggling with the borrow checker is part of learning — the compiler’s error messages are your teacher

If you’re stuck for more than 15 minutes, expand the solution, study it, then close it and try again from scratch

The Rust Playground lets you run code without a local install

Difficulty indicators:

🟢 Beginner — Direct translation from Python concepts

🟡 Intermediate — Requires understanding ownership or traits

🔴 Advanced — Lifetimes, async internals, or unsafe code

When you hit a wall:

Read the compiler error message carefully — Rust’s errors are exceptionally helpful

Re-read the relevant section; concepts like ownership (ch7) often click on the second pass

The Rust standard library docs are excellent — search for any type or method

For deeper async patterns, see the companion Async Rust Training

Table of Contents

Part I — Foundations

1. Introduction and Motivation 🟢

The Case for Rust for Python Developers

Common Python Pain Points That Rust Addresses

When to Choose Rust Over Python

2. Getting Started 🟢

Installation and Setup

Your First Rust Program

Cargo vs pip/Poetry

3. Built-in Types and Variables 🟢

Variables and Mutability

Primitive Types Comparison

String Types: String vs &str

4. Control Flow 🟢

Conditional Statements

Loops and Iteration

Expression Blocks

Functions and Type Signatures

5. Data Structures and Collections 🟢

Tuples, Arrays, Slices

Structs vs Classes

Vec vs list, HashMap vs dict

6. Enums and Pattern Matching 🟡

Algebraic Data Types vs Union Types

Exhaustive Pattern Matching

Option for None Safety

Part II — Core Concepts

7. Ownership and Borrowing 🟡

Understanding Ownership

Move Semantics vs Reference Counting

Borrowing and Lifetimes

Smart Pointers

8. Crates and Modules 🟢

Rust Modules vs Python Packages

Crates vs PyPI Packages

9. Error Handling 🟡

Exceptions vs Result

The ? Operator

Custom Error Types with thiserror

10. Traits and Generics 🟡

Traits vs Duck Typing

Protocols (PEP 544) vs Traits

Generic Constraints

11. From and Into Traits 🟡

Type Conversions in Rust

From, Into, TryFrom

String Conversion Patterns

12. Closures and Iterators 🟡

Closures vs Lambdas

Iterators vs Generators

Macros: Code That Writes Code

Part III — Advanced Topics & Migration

13. Concurrency 🔴

No GIL: True Parallelism

Thread Safety: Type System Guarantees

async/await Comparison

14. Unsafe Rust, FFI, and Testing 🔴

When and Why to Use Unsafe

PyO3: Rust Extensions for Python

Unit Tests vs pytest

15. Migration Patterns 🟡

Common Python Patterns in Rust

Essential Crates for Python Developers

Incremental Adoption Strategy

16. Best Practices 🟡

Idiomatic Rust for Python Developers

Common Pitfalls and Solutions

Python→Rust Rosetta Stone

Learning Path and Resources

Part IV — Capstone

17. Capstone Project: CLI Task Manager 🔴

The Project: rustdo

Data Model, Storage, Commands, Business Logic

Tests and Stretch Goals

rust python part from types traits

Related Articles