Global training solutions for engineers creating the world's electronics

Rust Fundamentals

Standard Level - 4 days

This course is available Live Online worldwide: View the Live Online full course description »

Rust Fundamentals provides attendees with a full grounding in the Rust programming language. It is sufficient to get you started in your Rust programming journey. The syllabus, examples and exercises are tuned to the practical requirements for embedded software developers.

Workshops and the hands-on interactive coding quizzes that are interlaced with the lecture deliveries, comprise approximately 50% of class time and are based around carefully designed hands-on exercises to reinforce learning. This training class is designed around interactivity and student engagement. Throughout the lectures the students are asked to run code snippets to demonstrate complex concepts, debug and refine provided examples. These various exercises will be achieved using a mix of web-based tools integral to the training material as well as a provided virtual-machine environment that the student will be able to keep post-training to further their experiments with a Rust based embedded software tool-kit.

Please contact Doulos for further information about this training.

This course is designed as a general introduction to Rust programming.

It is suitable for embedded software engineers who need to gain a working knowledge of the Rust language to build an embedded system.

It is a prerequisite for the follow-on class Rust for Embedded Firmware. Please contact Doulos for further information about this training.

  • Fundamental principles of Rust
  • Language syntax basics
  • Rust's memory management with the ownership and borrowing principles
  • Project management
  • Advanced language constructs and abstract data types

Rust Fundamentals does not assume a prior knowledge of C/C++ or assembly, however this would be an advantage. 

Equally, embedded programming experience and microcontroller knowledge is not essential to participate to the training, but useful.

This course is not suitable as a first course in computer programming.

Doulos course materials are renowned for being the most comprehensive and user friendly available. Their unique style, content and coverage has made them sought after resources in their own right. The materials include:

  • Fully indexed class notes creating a complete reference manual
  • Workbook full of practical examples and solutions to help you apply your knowledge

Attendees will also be provided with virtual-machine environment to keep post-training to further their experiments with a Rust-based embedded software tool-kit.

The Virtual Machine (VM) needs to be downloaded and set up on your PC before the course begins. The size of the VM is approximately 9GB so it may take a few minutes to download depending on the internet speed. While configuring the VM, make sure you have at least 23GB of free space on your hard drive. You will get detailed instructions on how to set up the VM as part of the course joining instructions.

Rust Fundamentals will cover the topics below.

Integral to the course are hands-on sessions for almost all topics covered, complemented by a project developed through the course, which integrates the acquired knowledge with a working example that can be used as a basis for real projects.

Course Content

Rust application overview
Rust's 101 • How does Rust compare to other languages? • Safety features in the Rust language • Rust tools for embedded development • Memory control • Rust's embedded credentials

Rust language overview
Syntax rules and conventions • Declarations and statements • Rust expressions • Rust loops • Fields and scopes • Rust abstract data types

Data types in Rust
Scalar types • Type casting • Compound types

Rust Operators
Arithmetic operators • Logical operators • Relational operators • Type operators

Variables, Constants, Mutable
Scope of declaration • Mutability • Memory allocation

Control Flow
Conditional execution • Pattern matching • Rust Loops and early terminations

Ownership and Borrowing
The ownership paradigm • Shared references • Mutable references • Move versus copy types

Arguments list • Return values • Local declarations • Formal VS actual arguments' kind • Function pointers • Closures and functional programming

Advanced function definitions
Overloading • Lifetimes • Generic functions

More on Types
String types • Struct Types • Enumerated Types • Options and Results • The Box Type

Crates and modules
What are crates? • Commonly used crates in Rust • Creating and using crates • Crates in embedded Rust #![no_main] #![no_std] • What are modules? • Basic module implementation • Hierarchical modules • Managing abstraction with pub • pub use case with struct, enum, trait, mod • Accessing the module's content

Abstraction and Implementation
Generic and Traits

Looking for team-based training, or other locations?

Complete an enquiry form and a Doulos representative will get back to you.

Enquiry FormPrice on request