Rust training

Rust

This course will teach you the fundamentals of Rust, a modern programming language blazingly fast, memory-efficient, memory-safe and thread-safe that enables you to eliminate many classes of bugs at compile-time. Rust can power performance-critical services, run on embedded devices, and easily integrate with other languages.

This training is available as "onsite live training" as well as "remote live training".

Languages: French, English

1700 € (Tax free)
3 days (21 hours)

Why take this course

This course combines hands-on exercices (about 60%) with concept understanding and theory (about 40%) and can be adapted to the learner's needs. By the end you will become autonomous in developping Rust applications.

On successfull completion of this course, you will receive an instructor-signed certificate with the institution's logo.

What you'll learn

  1. Think as a rustacean.
  2. Write idiomatic Rust code.
  3. Compile and test your code.
  4. Choose the appropriate data structure.
  5. Use the documentation and most common libraries.
  6. Understand Rust's strengths and weaknesses.
  7. Become autonomous: start designing and implementing your first application in Rust.

Prerequisites

  • Basic programming experience.
  • Knowledge of Linux/Unix environment.

Course syllabus

Module 1 - Introduction
  • How is Rust different?
    • Execution time
    • Error management
    • Safety
    • Multithreading
  • Programming paradigms
Module 2 - Basics
  • Primitive types
  • Functions
  • Variables an mutability
  • Control flow
  • Structured data types
  • Enumerations (enum, match, Option)
Module 3 - Understanding ownership and references
  • Ownership
  • References and Borrowing
  • Slices
  • Lifetime
  • Types that contain references
Module 4 - Advanced types
  • Collections (String, Vec, HashMap)
  • Iterators
  • Error management (Result, propagation, panic)
  • Closures
Module 5 - Generics
  • Generic types
  • Trait bounds
  • Standard traits
    • Operator overloading
Module 6 - Development environment
  • Installing and configuring Rust (rustup, system packages)
  • Using the compiler and build system (rustc, cargo)
  • The Cargo package manager (cargo and crates.io)
  • Unit testing
  • Documentation: rustdoc
  • Environments and IDE
Module 7 - Multithreading
  • Inter-thread communication
  • Data sharing
  • Trait Send and Sync
Modules 8 - Advanced Rust
  • Macros
  • Using C/C++ code inside Rust
  • Using Rust code inside C/C++
  • Unsafe Rust
Module 9 - Standard libraries and ecosystem
  • std::*
  • Serializing using serde
  • Non-blocking IO using tokio
  • Querying databases
  • Web server

Meet your instructor

Laurent Wouters is co-founder of Cénotélie and a dedicated researcher and trainer. He has been coding actively in Rust for several years, in particular, to develop a software for crop management using satelite images processing. It is a complex application with a backend entirely written in Rust.
Laurent is an active contributor to other open projects, like Hime, for which he has also developed the Rust runtime.

He holds a PhD in the Theory of languages. As a researcher, he was particularly interested in understanding how languages and semantics can contribute to efficient digital collaboration and complex systems engineering. He gained a strong teaching experience as a teaching assistant in top universities in Paris, including Ecole Centrale de Paris.