Course programme
Preparing for Systems Programming with Rust
6 lectures 27:11
The Course Overview
This video provides an overview of the entire course.
Systems Programming in Rust
Here, see the overview of what Rust is, where it came from, and why we might want to use it.
• Describe what Rust is
• Explain how Rust came to be
• Explain the benefits of Rust
Configuring Your Editor/IDE
Rust is a difficult language to learn and use. Rust support in your IDE/Editor helps a lot.
• Show the website that lists major IDEs/Editors and how to configure them
• Show how to find Rust support for IDEs/Editors not on the list
• Demonstrate the benefits of Rust IDE support in IntelliJ
The Many Faces of Cargo
We need a tool to create, manage, build, run, document, and test our code.
• Overview cargo’s capabilities
• Demonstrate creating a binary application
• Demonstrate creating a library
Preview Finished Project
The student does not know what we are going to build for this course, so let’s show them.
• Describe the problem of processing data without progress indicators
• Show processing data with and without our project
• Describe the capabilities of our project
Layout the Skeleton of the Project
We have no project to work in, yet.
• Select a name and location for the project
• Create the project with cargo and configure it
• Select a version control system and configure it
Preparing for Systems Programming with Rust - Quiz
Preparing for Systems Programming with Rust
6 lectures 27:11
The Course Overview
This video provides an overview of the entire course.
Systems Programming in Rust
Here, see the overview of what Rust is, where it came from, and why we might want to use it.
• Describe what Rust is
• Explain how Rust came to be
• Explain the benefits of Rust
Configuring Your Editor/IDE
Rust is a difficult language to learn and use. Rust support in your IDE/Editor helps a lot.
• Show the website that lists major IDEs/Editors and how to configure them
• Show how to find Rust support for IDEs/Editors not on the list
• Demonstrate the benefits of Rust IDE support in IntelliJ
The Many Faces of Cargo
We need a tool to create, manage, build, run, document, and test our code.
• Overview cargo’s capabilities
• Demonstrate creating a binary application
• Demonstrate creating a library
Preview Finished Project
The student does not know what we are going to build for this course, so let’s show them.
• Describe the problem of processing data without progress indicators
• Show processing data with and without our project
• Describe the capabilities of our project
Layout the Skeleton of the Project
We have no project to work in, yet.
• Select a name and location for the project
• Create the project with cargo and configure it
• Select a version control system and configure it
Preparing for Systems Programming with Rust - Quiz
The Course Overview
This video provides an overview of the entire course.
The Course Overview
This video provides an overview of the entire course.
The Course Overview
This video provides an overview of the entire course.
The Course Overview
This video provides an overview of the entire course.
This video provides an overview of the entire course.
This video provides an overview of the entire course.
Systems Programming in Rust
Here, see the overview of what Rust is, where it came from, and why we might want to use it.
• Describe what Rust is
• Explain how Rust came to be
• Explain the benefits of Rust
Systems Programming in Rust
Here, see the overview of what Rust is, where it came from, and why we might want to use it.
• Describe what Rust is
• Explain how Rust came to be
• Explain the benefits of Rust
Systems Programming in Rust
Here, see the overview of what Rust is, where it came from, and why we might want to use it.
• Describe what Rust is
• Explain how Rust came to be
• Explain the benefits of Rust
Systems Programming in Rust
Here, see the overview of what Rust is, where it came from, and why we might want to use it.
• Describe what Rust is
• Explain how Rust came to be
• Explain the benefits of Rust
Here, see the overview of what Rust is, where it came from, and why we might want to use it.
• Describe what Rust is
• Explain how Rust came to be
• Explain the benefits of Rust
Here, see the overview of what Rust is, where it came from, and why we might want to use it.
• Describe what Rust is
• Explain how Rust came to be
• Explain the benefits of Rust
Configuring Your Editor/IDE
Rust is a difficult language to learn and use. Rust support in your IDE/Editor helps a lot.
• Show the website that lists major IDEs/Editors and how to configure them
• Show how to find Rust support for IDEs/Editors not on the list
• Demonstrate the benefits of Rust IDE support in IntelliJ
Configuring Your Editor/IDE
Rust is a difficult language to learn and use. Rust support in your IDE/Editor helps a lot.
• Show the website that lists major IDEs/Editors and how to configure them
• Show how to find Rust support for IDEs/Editors not on the list
• Demonstrate the benefits of Rust IDE support in IntelliJ
Configuring Your Editor/IDE
Rust is a difficult language to learn and use. Rust support in your IDE/Editor helps a lot.
• Show the website that lists major IDEs/Editors and how to configure them
• Show how to find Rust support for IDEs/Editors not on the list
• Demonstrate the benefits of Rust IDE support in IntelliJ
Configuring Your Editor/IDE
Rust is a difficult language to learn and use. Rust support in your IDE/Editor helps a lot.
• Show the website that lists major IDEs/Editors and how to configure them
• Show how to find Rust support for IDEs/Editors not on the list
• Demonstrate the benefits of Rust IDE support in IntelliJ
Rust is a difficult language to learn and use. Rust support in your IDE/Editor helps a lot.
• Show the website that lists major IDEs/Editors and how to configure them
• Show how to find Rust support for IDEs/Editors not on the list
• Demonstrate the benefits of Rust IDE support in IntelliJ
Rust is a difficult language to learn and use. Rust support in your IDE/Editor helps a lot.
• Show the website that lists major IDEs/Editors and how to configure them
• Show how to find Rust support for IDEs/Editors not on the list
• Demonstrate the benefits of Rust IDE support in IntelliJ
The Many Faces of Cargo
We need a tool to create, manage, build, run, document, and test our code.
• Overview cargo’s capabilities
• Demonstrate creating a binary application
• Demonstrate creating a library
The Many Faces of Cargo
We need a tool to create, manage, build, run, document, and test our code.
• Overview cargo’s capabilities
• Demonstrate creating a binary application
• Demonstrate creating a library
The Many Faces of Cargo
We need a tool to create, manage, build, run, document, and test our code.
• Overview cargo’s capabilities
• Demonstrate creating a binary application
• Demonstrate creating a library
The Many Faces of Cargo
We need a tool to create, manage, build, run, document, and test our code.
• Overview cargo’s capabilities
• Demonstrate creating a binary application
• Demonstrate creating a library
We need a tool to create, manage, build, run, document, and test our code.
• Overview cargo’s capabilities
• Demonstrate creating a binary application
• Demonstrate creating a library
We need a tool to create, manage, build, run, document, and test our code.
• Overview cargo’s capabilities
• Demonstrate creating a binary application
• Demonstrate creating a library
Preview Finished Project
The student does not know what we are going to build for this course, so let’s show them.
• Describe the problem of processing data without progress indicators
• Show processing data with and without our project
• Describe the capabilities of our project
Preview Finished Project
The student does not know what we are going to build for this course, so let’s show them.
• Describe the problem of processing data without progress indicators
• Show processing data with and without our project
• Describe the capabilities of our project
Preview Finished Project
The student does not know what we are going to build for this course, so let’s show them.
• Describe the problem of processing data without progress indicators
• Show processing data with and without our project
• Describe the capabilities of our project
Preview Finished Project
The student does not know what we are going to build for this course, so let’s show them.
• Describe the problem of processing data without progress indicators
• Show processing data with and without our project
• Describe the capabilities of our project
The student does not know what we are going to build for this course, so let’s show them.
• Describe the problem of processing data without progress indicators
• Show processing data with and without our project
• Describe the capabilities of our project
The student does not know what we are going to build for this course, so let’s show them.
• Describe the problem of processing data without progress indicators
• Show processing data with and without our project
• Describe the capabilities of our project
Layout the Skeleton of the Project
We have no project to work in, yet.
• Select a name and location for the project
• Create the project with cargo and configure it
• Select a version control system and configure it
Layout the Skeleton of the Project
We have no project to work in, yet.
• Select a name and location for the project
• Create the project with cargo and configure it
• Select a version control system and configure it
Layout the Skeleton of the Project
We have no project to work in, yet.
• Select a name and location for the project
• Create the project with cargo and configure it
• Select a version control system and configure it
Layout the Skeleton of the Project
We have no project to work in, yet.
• Select a name and location for the project
• Create the project with cargo and configure it
• Select a version control system and configure it
We have no project to work in, yet.
• Select a name and location for the project
• Create the project with cargo and configure it
• Select a version control system and configure it
We have no project to work in, yet.
• Select a name and location for the project
• Create the project with cargo and configure it
• Select a version control system and configure it
Preparing for Systems Programming with Rust - Quiz
Preparing for Systems Programming with Rust - Quiz
Preparing for Systems Programming with Rust - Quiz
Preparing for Systems Programming with Rust - Quiz
Operating with I/O
6 lectures 35:26
Read from stdin, Count Bytes, and Write to stdout
We need to read data from somewhere, process it, and write it back out somewhere else.
• Read data from stdin
• Process the data
• Write data to stdout
Inspecting Values with dbg!()
We need an ergonomic way to print extra debugging information during development.
• Identify a candidate debugging expression
• Wrap the expression in dbg!()
• Analyze the debugging output
Working Effectively with cargo fmt and cargo clippy
Code is harder to read and distracting conflicts often occur when code is not styled consistently and using the same idioms.
• Call out problems of not adhering to standards and idioms
• Demonstrate cargo fmt and cargo clippy
• Demonstrate automating the tools
Handling Errors Gracefully
Ignoring and not handling errors leads to unsafe and buggy code.
• Describe situations which occur when errors are not handled properly
• Demonstrate handling errors by choosing to crash
• Demonstrate handling errors more gracefully
Handling Command Line Arguments with Clap
We need a way to parse command-line arguments to affect the behavior of our program.
• Describe the need to handle command-line arguments
• Demonstrate how to use the clap library in code
• Demonstrate the command-line handling in the compiled project
Reading/Writing Files, Buffered I/O, and Traits
We need to be able to read and write files, it needs to be fast, and we would like it to be convenient.
• Demonstrate reading and writing files
• Demonstrate buffered reading and writing files for better performance
• Demonstrate using Read/Write traits to make code convenient
Operating with I/O - Quiz
Operating with I/O.
6 lectures 35:26
Read from stdin, Count Bytes, and Write to stdout
We need to read data from somewhere, process it, and write it back out somewhere else e between our threads, preferably in a way that avoids locking. MPSC channels are a good tool for that.
• Describe our need to communicate between threads
• Explain how MPSC channels work
• Use MPSC channels...