Updated June 2026 35 hours of live training delivered over 5-10 days to accommodate your scheduling needs. Python developers and ML/data engineers adding Rust to their toolkit — for performance-critical hot paths, native Python extensions, async services, CLIs, or memory-safe rewrites of legacy components. Particularly relevant for teams shipping LLM applications who need a fast, safe runtime for the parts of the system Python isn't well suited to. This course gives Python developers a structured pathway to production Rust on the 2024 edition (Rust 1.85 introduced the edition; 1.96+ recommended for the current toolchain). Every concept is introduced in contrast with the Python equivalent: ownership vs. reference counting, All students receive comprehensive courseware covering all topics in the course. Courseware is distributed via GitHub in the form of documentation and extensive code samples. A free GitHub account, the latest stable Rust toolchain installed via Rust for Python Programmers
Class Duration
Student Prerequisites
mypy/pyright is helpful but not requiredTarget Audience
Description
Result/Option vs. exceptions, traits vs. protocols, async/await on Tokio vs. asyncio, monomorphized generics vs. duck typing. The course closes with a hands-on PyO3 module that takes a Python hot path, rewrites it in Rust, releases the GIL, and ships as a wheel — the workflow most Python teams actually adopt Rust for. Throughout, students use AI coding assistants (Claude Code, Cursor, GitHub Copilot) the way senior engineers use them in 2026, with the compiler and clippy as the source of truth.Learning Outcomes
Training Materials
Software Requirements
rustup (Rust 1.96+ on the 2024 edition), Python 3.12+, Visual Studio Code or another supported editor with the rust-analyzer extension, and an AI coding assistant of choice (GitHub Copilot, Cursor, or Claude Code). A cloud-based environment can be provided if local installation is restricted.Training Topics
Introduction: Rust from a Python Perspective
Toolchain and Editor Setup
rustupcargo vs. pip/poetry/uv: similarities and differencesCargo and Crates
cargo new, cargo run, cargo build, cargo testCargo.toml and dependencies vs. pyproject.tomlcargo publish --workspaceserde, tokio, reqwest, sqlx, anyhow, thiserror, tracingRust vs. Python: A Working Map
Result/Option vs. exceptionsScalar Types, Control Flow, and Functions
if/else as expressions, loop, while, forlet-chains in if and whileModules and the Standard Library
mod and useprelude patternsBuilt-In Macros
print!, println!, eprintln!, format!, dbg!vec!, assert!, include_str!, include_bytes!cfg!, env!, panic!Memory Management and Ownership
&T and &mut TBox, Rc, Arc, and when each is appropriateDrop traitStrings and Collections
String vs. &str and the cost of conversionsHashMap, HashSet, BTreeMap, BTreeSetmap, filter, fold, try_fold)Tuples, Enums, Structs
Option<T> and Result<T, E> as the cornerstone of Rust error handlingPattern Matching
match, if let, while let, and 2024 let-chains@ patternsTraits and Generics
dyn Trait)where clausesAsync/Await with Tokio
tokio::select!, JoinSet, structured cancellationreqwest, JSON with serde, databases with sqlxConcurrent Programming
Send, Sync, and the data-race storyArc, Mutex, RwLock, channelsrayon for data parallelismTests, Documentation, and Quality
proptestrustdoc and writing documentation that compilesclippy and rustfmt in CIPyO3 and Python Extensions in Rust
AI-Assisted Rust Development for Python Engineers
unsafe, unwrap, and reflexive Arc<Mutex<T>>