Updated June 2026 35 hours of live training delivered over 5-10 days to accommodate your scheduling needs. C# and .NET engineers adding Rust to their toolkit — for performance-critical services, native libraries, CLIs, embedded work, or memory-safe replacements for legacy unmanaged components. Particularly relevant for teams that have hit GC pause limits, run hot paths through This course gives experienced C# 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 C#/.NET equivalent: ownership and borrowing vs. the GC, traits vs. interfaces, structs and enums vs. records and discriminated unions (and how Rust enums actually deliver on the latter), async/await on Tokio vs. 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 C# Programmers
Class Duration
Student Prerequisites
dotnet CLI, NuGet, and async/awaitTarget Audience
Span<T>/Memory<T>, or want a compiled-language story without a runtime.Description
Task, monomorphized generics vs. .NET generics. The course closes with a real, end-to-end Rust service — built with AI assistance from Claude Code, Cursor, or GitHub Copilot — that participants can reason about as confidently as their C# code.Learning Outcomes
Result<T, E> and the ? operator instead of exceptions.Training Materials
Software Requirements
rustup (Rust 1.96+ on the 2024 edition), 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 C# Perspective
Toolchain and Editor Setup
rustupcargo vs. dotnet CLI: similarities and differencesCargo and Crates
cargo new, cargo run, cargo build, cargo testCargo.toml and dependencies vs. csproj and NuGetcargo publish --workspaceserde, tokio, reqwest, sqlx, anyhow, thiserror, tracingRust vs. C#: A Working Map
Result/Option vs. exceptionsTask and TPLScalar Types, Control Flow, and Functions
const fnif/else as expressions, loop, while, forlet-chains in if and whileModules and the Standard Library
mod and useBuilt-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, Tuples, Enums, Structs, Collections
String vs. &strOption<T>, Result<T, E>Vec, HashMap, HashSet, BTreeMap/BTreeSetmap, filter, fold, try_fold)Pattern Matching
match and exhaustivenessif let, while let, and 2024 let-chains@ patternsTraits and Generics
dyn Trait)where clausesAsync/Await with Tokio
Task perspectivetokio::select!, JoinSet, structured cancellationreqwest, JSON with serde, databases with sqlxConcurrent Programming
Send, Sync, and the data-race storyArc, Mutex, RwLock, channelsrayon for data parallelismUnsafe Rust
unsafe superpowers and what they meanunsafe blocksMacros and Metaprogramming
macro_rules!syn, quote, and proc-macro2 at a glanceTests, Documentation, and Quality
rustdoc and writing documentation that compilesclippy and rustfmt in CIAI-Assisted Rust Development for .NET Engineers
unsafe, unwrap, and reflexive Arc<Mutex<T>>