Course Outline

# Day 1

 

- Introduction

- Installation

  - rustup

  - cargo, rustc

  - crates.io 

- create a first project

  - creating a library or executable

  - Cargo.toml

  - Cargo.lock

  - exploring the source

  - cargo tools

  - hello world program

- Basic syntax

  - functions

  - variables

  - types

  - structs and enums

  - control flow: if, loops, pattern matching

  - exercise: the guessing game

- Ownership

  - moves

  - mutability

  - borrowing

  - lifetimes

  - exercise: fixing borrow checker compilation errors

- Modules

  - importing code

  - visibility

  - source code organisation

- Traits and generics

  - methods

  - generic types, functions and methods

  - type aliases

- Standard library

  - Option

  - Result

  - collections: Vec, HashMap

  - iterators

  - exercise: start building a small in memory database

 

# Day 2

 

- Tools

  - importing crates

  - unit tests

  - benchmarks

  - fuzzing

  - documentation

  - attributes

  - exercise: integrate unit tests, CI and other tools for the database example

- Strings and slices

  - String

  - &str

  - &[u8]

- Iterators

- Closures

  - exercise: start implementing queries

- Destructuring

  - if let

- API design

  - Usual traits

    - Clone and Copy

    - Debug and Display

    - PartialEq, Eq

    - Drop

  - Static VS dynamic dispatch

  - Associated types

  - Deref

  - Into

- I/O

  - exercise: add optional file storage for the database

- Concurrency

  - threads

  - channels

  - Send, Sync

  - mutability

  - Arc, Mutex

  - exercise: multiple clients querying the database while storing regularly

 

# Day 3

 

- FFI

  - repr(C)

  - exporting functions and structures

  - unsafe

  - Box

  - rusty-cheddar and rust-bindgen

  - linking

  - cargo-vendor

  - exercise: making a C interface for our in memory database

- common libraries and interfaces (adaptable depending on what the students want to focus on)

  - docs.rs

  - Command

  - clap

  - serde

  - log

  - tokio

  - rocket

  - lazy_static

  - nom

 21 Hours

Number of participants



Price per participant

Testimonials (4)

Related Courses

Rust Advanced

14 Hours

Rust for Systems Programming

21 Hours

Rust for Embedded Systems

21 Hours

Rust for Game Development

21 Hours

Rust for Web Development

21 Hours

Combined C/C++, JAVA and Web Application Security

28 Hours

Advanced Java Security

21 Hours

Combined JAVA, PHP and Web Application Security

28 Hours

Related Categories