8119  Reviews star_rate star_rate star_rate star_rate star_half

Introduction to Rust Programming

This course is designed to equip a programmer with the necessary tools, knowledge and skills to develop client, server or embedded software solutions using the Rust programming language. This course...

Read More
$3,140 USD
Course Code TP2951-CC
Duration 2 days
Available Formats Classroom

This course is designed to equip a programmer with the necessary tools, knowledge and skills to develop client, server or embedded software solutions using the Rust programming language. This course covers the Rust language, explores std (standard) library as well as best practices.Perhaps, more importantly, this course prepares the participant to not just learn the mechanics behind Rust programming, but help develop the mentality and understand the design principles behind this mighty language.

Course Details

Course Outline

Hello, world!

  • Characteristics of Rust
  • Getting rustup
  • Cargo
  • “Hello, World” (finally)
  • Unit Tests

What you already know

  • Basic Syntax
  • A bit of convention
  • Comments
  • Variables and Constants
  • Operators
  • Control Statements
  • Functions

Basic Types

  • Numeric Types
  • Boolean Type
  • String Types
  • Unit Type

What you might not know

  • Ownership and Borrowing
  • Option
  • Result
  • Macros!

Compound Types

  • Defining enum
  • Arrays and Vec<T>
  • HashMap
  • Defining struct

Modules and CratesReviewing Cargo.toml

  • Creating Libraries
  • Using Library
  • Modules

Memory Management

  • Rust memory model
  • Allocating memory
  • Box<T> and Cow<T>
  • Rc<T> and Arc<T>
  • Cell<T> and RefCell<T>
  • unsafe code

Object Oriented Programming

  • Is Rust OO?
  • Implementing structs
  • Implementing traits
  • Creating traits
  • impl and dyn

Functional Programming

  • Closures
  • Iterators
  • Reviewing for in
  • My Functional Friends

Generics

  • Fancy a cup of <T>?
  • Generic functions
  • Generics in struct
  • Generics with traits
  • Using Self

Fearless Concurrency

  • Threads in Rust
  • move data between threads
  • Exchanging messages
  • Syncing threads
  • Promises
  • async and await

Rust and the Outside World

  • Foreign Function Interface (FFI)
  • nostd for embedded development
  • Using extern crate
  • Exploring Serde for serialization