Hands-On Systems Programming with Rust

Video description

Take advantage of Rust to ensure safety and concurrency

About This Video

    Quickly learn the essentials of systems programming in Rust and learn to monitor data flows through a pipeline

    Dive into a fast-paced and informative course which includes hands-on implementations of important concepts in every section

    Work with the latest version of Rust and develop a utility that's compatible with Linux, MacOS, and Windows

In Detail

Scripting languages will provide safety, but not concurrency and speed, while traditional systems programming languages such as C and C++ will definitely give you speed and some concurrency, but forget about safety! If you need safety, concurrency, and speed, then Rust is the only viable option.

In this course, you will learn how Rust guarantees memory and thread safety at compile-time, yet uses zero-cost abstractions without the runtime overhead of a garbage collector. You'll learn how to monitor the flow of data through a pipeline by building your own middleware utility. You'll learn how to utilize I/O to interact with the command line, work with standard library mpsc channels to perform data flows, and create an ergonomic timer for your project. You'll apply key concepts in every section while creating your own middleware tool in Rust along the way.

By the end of this practical course, you will feel comfortable designing safe, consistent, parallel, and high-performance applications in Rust using systems programming.

This course should appeal to intermediate Linux and general Unix programmers, network programmers, and C/C++ programmers interested in learning different approaches to concurrency. Prior knowledge of basic programming concepts is required, and a working knowledge of Rust is assumed.

Publisher resources

Download Example Code

Table of contents

  1. Chapter 1 : Preparing for Systems Programming with Rust
    1. The Course Overview 00:03:20
    2. Systems Programming in Rust 00:05:59
    3. Configuring Your Editor/IDE 00:04:13
    4. The Many Faces of Cargo 00:09:46
    5. Preview Finished Project 00:01:03
    6. Layout the Skeleton of the Project 00:02:50
  2. Chapter 2 : Operating with I/O
    1. Read from stdin, Count Bytes, and Write to stdout 00:08:45
    2. Inspecting Values with dbg!() 00:04:44
    3. Working Effectively with cargo fmt and cargo clippy 00:04:45
    4. Handling Errors Gracefully 00:06:12
    5. Handling Command Line Arguments with Clap 00:05:28
    6. Reading/Writing Files, Buffered I/O, and Traits 00:05:32
  3. Chapter 3 : Applying Multithreading Features to Your Project
    1. Working Effectively with Organized Library Modules 00:11:03
    2. Separate Input, Statistics, and Output Threads 00:12:22
    3. Operating with MPSC Channels for Data Flow in Sequence 00:08:21
    4. Refactor Code to Use Crossbeam Channels 00:06:51
  4. Chapter 4 : Dealing with Time and Terminal
    1. Working with Instant 00:01:57
    2. Calculate a Delta Time Using Instants 00:03:24
    3. Use Durations to Create an Ergonomic Timer Struct 00:02:57
    4. Using Timer and Output Progress Statistics at a Steady Rate 00:03:59
    5. Applying Crossterm and Colorizing the Output 00:04:53
  5. Chapter 5 : Systems Programming in Rust: Best Practices
    1. Creating a Library and Organizing it into Modules 00:04:32
    2. Writing and Running Tests on Your Code 00:02:49
    3. Documenting Your Code 00:03:26
    4. Understanding the Ins and Outs of Semantic Versioning 00:02:04
    5. Publishing Your Project as a Crate on crates.io 00:04:23

Product information

  • Title: Hands-On Systems Programming with Rust
  • Author(s): Nathan Stocks
  • Release date: February 2020
  • Publisher(s): Packt Publishing
  • ISBN: 9781838822132