Hands-On Systems Programming with Rust

Take advantage of Rust to ensure safety and concurrency

4.30 (241 reviews)
Udemy
platform
English
language
Programming Languages
category
1,655
students
2.5 hours
content
Mar 2020
last update
$59.99
regular price

What you will learn

Explore Rust's package registry for discovering and sharing code

Use multithreading to unlock the power of multiple cores

Get to know data-flow rate and speed through a pipeline

Display time-based statistics using stderr

Build your own middleware project to control the flow of data between two processes

Best practices and techniques to set up your project for success

Test and publish your own project on crates .io

Description

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.

About the Author

Nathan Stocks has spent the last 20 years working in software development, mostly in the field of backend infrastructure. He fell in love with Rust in 2016 and began teaching it in 2017. For the past several years, he has focused on systems-level programming. He maintained the AVbin audio library (written in C) from 2011-2013. He has had tons of fun learning, using, and teaching Rust at conferences and online. He also loves Python and PostgreSQL, and still occasionally suffers from nightmares about C and C++.

He currently works at GitHub, managing the Git Storage team, and spends his nights in pursuit of someday creating a successful indie game in Rust.

Content

Preparing for Systems Programming with Rust

The Course Overview
Systems Programming in Rust
Configuring Your Editor/IDE
The Many Faces of Cargo
Preview Finished Project
Layout the Skeleton of the Project
Test your knowledge

Operating with I/O

Read from stdin, Count Bytes, and Write to stdout
Inspecting Values with dbg!()
Working Effectively with cargo fmt and cargo clippy
Handling Errors Gracefully
Handling Command Line Arguments with Clap
Reading/Writing Files, Buffered I/O, and Traits
Test your knowledge

Applying Multithreading Features to Your Project

Working Effectively with Organized Library Modules
Separate Input, Statistics, and Output Threads
Operating with MPSC Channels for Data Flow in Sequence
Refactor Code to Use Crossbeam Channels
Test your knowledge

Dealing with Time and Terminal

Working with Instant
Calculate a Delta Time Using Instants
Use Durations to Create an Ergonomic Timer Struct
Using Timer and Output Progress Statistics at a Steady Rate
Applying Crossterm and Colorizing the Output
Test your knowledge

Systems Programming in Rust: Best Practices

Creating a Library and Organizing it into Modules
Writing and Running Tests on Your Code
Documenting Your Code
Understanding the Ins and Outs of Semantic Versioning
Publishing Your Project as a Crate on crates.io
Test your knowledge

Screenshots

Hands-On Systems Programming with Rust - Screenshot_01Hands-On Systems Programming with Rust - Screenshot_02Hands-On Systems Programming with Rust - Screenshot_03Hands-On Systems Programming with Rust - Screenshot_04

Reviews

Dave
September 8, 2023
A fair bit of this course is out of date, and during section 21, encountered a few warnings about deprecated methods such as execute!() .
Raphael
May 16, 2023
I recently purchased a course on Udemy and I must say that I am quite disappointed with it. The main issue is that the course content is outdated, which makes it difficult to follow along and apply the concepts in real-world scenarios. Furthermore, the code provided in the course does not run properly, leading to frustration and wasted time trying to debug it. It's evident that the instructor has not kept up with the latest updates and best practices in the field. I believe that it is essential for course instructors to regularly update their content to reflect the current state of the technology they are teaching. This ensures that students receive accurate and practical knowledge that they can apply in their projects or careers. Overall, I would not recommend this course to others due to its outdated content and non-functional code. It's crucial to research and choose courses that are up-to-date and provide a high-quality learning experience.
Derek
March 29, 2023
a concise yet reasonably comprehensive introduction to what is expected from systems level programming in rust.
Eric
January 21, 2023
Nathan Stocks is a great presenter. His courses are short and to the point with just the right amount of explanation for picking up a new language. His pacing is good. Sometimes I have to pause and catch up when following along but most of the time I can listen, understand, and type without falling behind.
Franck
November 9, 2022
beaucoup de choses vu mais attention, certaines choses sont considérés par defaut comme acquises alors que ce n'est pas toujours le cas, un travail de recherche sera souvent necessaire pour comprendre/mieux comprendre certains usages et pratiques
Marco
October 23, 2022
Great, short and to the point course. Came for info on threading using Rust and got more than expected
Ekaterina
October 8, 2022
I expected some assumed actions to be explained. For example, why do we write empty data to the channel? The course is for very Rust beginners.
Jo
October 6, 2022
very beginner oriented, could go into more depth in terms of interfacing with operating systems such as making syscalls, unsafe blocks, c type interfaces etc
Руслан
September 5, 2022
Good explain of working with clap crate and dive in "right" program structure. But need more background info when move to thread theme.
Chris
August 27, 2022
Some of the material was covered quickly in the video with limited detail but it was an awesome and fun course overall!
Cole
June 3, 2022
I liked the iterative process building on many basic features that are sometimes just passed over in other resources I have tried.
Muktabh
May 7, 2022
Excellent course to actually start using Rust for System Programming. Fast Paced and fun. I would suggest completing an introductory Rust course before doing this one.
Christoph
March 8, 2022
The instructor works too fast. Students won't be able to think and write at the same time. You have to hit pause very often
Ron
February 15, 2022
I liked it at first, but it's dated (e.g. clap example using deprecated calls), and sometimes things are used without any explanation.
John
January 29, 2022
This was just what I needed to start creating CLI utilities and at the end of the course I had a very usable pipeviewer utility!

Charts

Price

Hands-On Systems Programming with Rust - Price chart

Rating

Hands-On Systems Programming with Rust - Ratings chart

Enrollment distribution

Hands-On Systems Programming with Rust - Distribution chart
2820265
udemy ID
2/18/2020
course created date
2/25/2020
course indexed date
Bot
course submited by