Course in Rust Skill Tree
Rust Practice Labs (Deprecated)
Beginner
This course contains lots of labs for Rust, each lab is a small Rust project with detailed guidance and solutions. You can practice your Rust skills by completing these labs, improve your coding skills, and learn how to write clean and efficient code.
linux
- Intro
- Syllabus
Defining Modules to Control Scope and Privacy
Refutability in Rust Pattern Matching
Rust Metaprogramming with Macros
Disabling Rust Unused Code Warnings
Conditional Rust Function Compilation
Lifetime Concepts in Rust Programming
Domain Specific Languages
Variadic Interfaces in Rust Programming
Rust Namespacing with use Declaration
Rust Variable Binding Declaration
Rust Programming Fundamentals: Variable Bindings and Expressions
Mutable Variable Bindings in Rust
Immutable Data Binding in Rust
Returning From Loops
An Example Program Using Structs
Controlling How Tests Are Run
Rust Borrow Checker Lifetime Elision
Rust Variable Bindings and Type Inference
Nesting and Labels
Rust FizzBuzz Loop Programming
Concise Control Flow with if Let
Rust Constants Exploration
Creating a Library
Macro Repetition in Rust
Exploring Rust Infinite Loops
Rust Literals and Type Specification
Rust Mutability Ownership Demonstration
Overloading Rust Macros with macro_rules!
Unrecoverable Errors with Panic
Destructuring and Dereferencing in Rust
Exploring Cargo Workspaces in Rust
Lifetime Management in Rust Structs
Lifetime Annotation in Rust Traits
Abort and Unwind
Cargo Attributes in Rust Development
Conditional Compilation with Rust's cfg Attribute
Scope and Shadowing
Destructuring Tuples in Rust
Reading a File
What Is Ownership?
The Slice Type
Printable Types in Rust's Standard Library
Waiting for Child Process Completion
Destructuring Rust Structs with Pattern Matching
Validating References with Lifetimes
Rust Enum Usage Examples
Rust Lifetime Annotations Borrow Checker
Rust Lifetime Coercion Exploration
Rust Primitive Types Exploration
Rust Lifetime and Trait Bounds
Rust Closures with Generic Constraints
Rust Multiple Bounds Exploration
Shared-State Concurrency in Rust
Defining and Instantiating Structs
Documenting Rust Projects with Markdown
Cargo Dependency Management in Rust
Publishing a Crate to Crates.io
Mutable Borrowing in Rust Book
Customizing Rust Struct Output with fmt::Display
Destructuring Arrays and Slices in Rust
As Output Parameters
Spawning Native Threads in Rust
Rust Enum Destructuring and Usage
Rust Comment Types and Documentation
Rust Loops and Ranges
The Ref Pattern
Aliases for Result
Exploring Rust's Functional Capabilities
Handling Errors with Early Returns in Rust
References and Borrowing
Rust Panic Handling Example
Rust Module Visibility Exploration
Multiple Error Types
Bringing Paths Into Scope with Use Keyword
Rust Aliasing: Enhancing Code Readability
Exploring Rust Closures and Environment Capture
Option & Unwrap
Executing Child Processes in Rust
Rust Aliasing Concept Exploration
Using Threads to Run Code Simultaneously
Rust Trait Inheritance and Composition
Chainable Option Handling with and_then()
Closures as Function Parameters
Exploring Rust's Result Type
The Use Declaration
Accepting Command Line Arguments
Rust Error Messages to Standard Error
Exploring Rust's Reference Counting Mechanism
Accessing Command Line Arguments in Rust
Rust Pattern Syntax Practice
Exploring Rust Struct Types and Applications
New Type Idiom
Packages and Crates
Cargo Documentation Generation and Testing
The Match Control Flow Construct
Storing Key-Value Pairs with Rust Hash Maps
Using Box<T> for Heap Data
Rc<T>, the Reference Counted Smart Pointer
Advanced Functions and Closures
Cloning Rust Structs with Clone Trait
Separating Modules Into Different Files
Exploring Rust Tuples and Transposing Matrices
Modular Rust File Organization
Rust Function Signatures with Lifetimes
Exploring Rust's Unsafe Operations
Using a Library
Treating Smart Pointers Like Regular References
Factoring Out Repetition with Rust Macros
Rust Method Syntax Practice
Rust Macros Designators Introduction
Binding and Destructuring in Rust
Alternate/Custom Key Types
To and From Strings
Rust Pattern Matching Exploration
Super and Self
Box, Stack and Heap
Rust Software Testing Fundamentals
Literals and Operators
Iterating Over Results
Formatted Print in Rust
Storing Lists of Values with Vectors
Rust Error Handling with Question Mark
Rust Library Functionality with Test-Driven Development
Efficient File Reading in Rust
Map for Result
Building a Single-Threaded Web Server
Rust Borrowing Ownership Fundamentals
Concise Rust Pattern Matching with Let-Else
Exploring Rust Traits for Customized Methods
Rust Type Inference Advanced Example
Concurrent Data Transfer with Rust Channels
Paths in Rust Module Tree
Shared Ownership with Rust Arc
Storing UTF-8 Encoded Text with Strings
Rust Book Lab: Unit and Integration Tests
Writing Rust Functions
Filesystem Operations in Rust
Concise Rust Option Iteration with While Let
Pulling Results Out of Options
Exploring Rust HashSet Operations
Command-Line Argument Parsing in Rust
Defining Generic Functions in Rust
Conditional Statements in Rust
Exploring Rust Generics Functionality
Rust Raw Identifiers Introduction
Phantom Type Parameters
Recoverable Errors with Result
Rust Method Usage Demonstration
Exploring Rust's Immutable Path Struct
To Panic or Not to Panic
How to Write Tests
Implement Generic Double Deallocation Trait
Exploring Rust's Drop Trait
Rust Operator Simplifies Error Handling
Diverging Functions in Rust
Visibility of Rust Struct Fields
Cleanup with Rust's Drop Trait
Reference Cycles Can Leak Memory
Implement fmt::Display for List in Rust
TryFrom and TryInto
Exploring Rust Iterator's Any Function
Rust Generics Type Constraints
Testcase: Empty Bounds
Exploring Rust's Impl Trait Functionality
Searching Through Iterators
Operator Overloading in Rust
Implementing an Object-Oriented Design Pattern
Foreign Function Interface
Simplifying Rust Option Handling with Map
Rust Integration Testing Fundamentals
Handling Errors with Box in Rust
From and Into
Rust Vectors: Resizable Array Essentials
Exploring Rust Closures and Capturing Behavior
Rust Formatting and Display Trait
Exploring Rust's Result Enum
Ownership and Moves
Rust Option Enum Handling Failure
Reading Files in Rust
Create File with Rust Standard Library
Child Process Interaction with Pipes
Rust Panic Handling and Memory Safety
Testcase: Unit Clarification
Closures: Anonymous Functions That Capture Their Environment
Arrays and Slices
Unpacking Options and Defaults
Disambiguating Overlapping Traits
Parallel Data Processing in Rust
Generic Container Trait Implementation
Working with Environment Variables
Returning Traits with Dyn
Exploring Rust's if let Construct
Partial Move Destructuring in Rust
Rust Unit Testing Fundamentals
Using Rust Match Guards
Trait Objects for Heterogeneous Values
Processing a Series of Items with Iterators
Derive Traits in Rust Tuple Structs
Defining an Enum
Defining an Error Type
All the Places Patterns Can Be Used
Exploring Rust's Associated Types
Implementing Generic Types in Rust
Rust Casting: Explicit Type Conversion
Associated Functions & Methods
Rust RAII Resource Management
Characteristics of Object-Oriented Languages
Exploring Rust's Static Concept
Refactoring to Improve Modularity and Error Handling
Implementing Iterators in Rust
Advanced Rust Traits Exploration
Other Uses of ?
Wrapping Errors with Custom Type
Exploring Rust String Concepts
As Input Parameters
Improving Our I/O Project
Traits: Defining Shared Behavior
Exploring Unsafe Rust Superpowers
Rust HashMap Data Storage Tutorial
Expressive Rust Generics with Where Clause
Unpacking Options with ?
Removing Duplication by Extracting a Function
Advanced Rust Types Practice
Rust Enum Concepts and Type Aliases
Rust Linked List Implementation
Rust Asynchronous Channels Communication
Exploring Rust Inline Assembly Usage
Rust Multithreaded Server Development
Rust Macros Exploration in LabEx
Graceful Shutdown and Cleanup
RefCell<T> and the Interior Mutability Pattern
Teacher
Labby
Labby is the LabEx teacher.
Share to Google Classroom
Join Our Discord and Learn Together
Join NowUser Reviews
" good job simple and easy to understand"
— Alonzo Kaspar
" it's hands on and very easy to understand , so far"
— Lindokuhle
Recommended For You

