In this instructor-led course, you’ll obtain a solid understanding of idiomatic Rust and improve your developer productivity.
Programming in Rust (LFD480)
- The Linux Foundation{ Training
- The Linux Foundation{ Certifications
- The Linux Foundation{ Digital Badges
- Laboratory Exercises, Solutions and Resources
- Things Change in Linux and Open Source Projects
- Distribution Details
- Labs
- Popularity of Rust
- Programmed in Rust
- Philosophy behind Rust
- Why not Rust
- Rust as your first programming language
- Rust and Software Engineering
- Rust release cycle
- Rust's Release Timeline
- Rust REPL
- Install and configure your Rust environment
- Anatomy of a Rust program
- Using cargo
- Adventurous Rust
- Labs
- Constants
- Ownership & Borrowing
- The Three Ownership Rules
- Primitive Types with Copy Trait
- Rust is an expression language
- Primitive datatypes
- Strings & Str
- Object or Owned Strings
- Understanding String Slices
- Arrays
- Labs
- Conditionals - if
- Conditionals - match
- Match Expressions in Rust
- Loops
- Rust Loops
- The While Loop
- Using Break and Continue in a For Loop
- Labs
- Structs
- Enums
- Vectors
- HashMaps
- Creating and Initializing a HashMap
- Conclusion
- Methods of Accessing Data in HashMaps
- Best Practices and Use Cases
- HashMap Iteration Order
- Removing Data by Key
- Labs
- Labs
- Example of Handling a Non-recoverable Error
- Advanced (pattern-)matching
- Why Use Closures with texttt {unwrap_or_else
- Pros and Cons of Using texttt {unwrap
- Use Cases and Tips for texttt {unwrap
- Upstream error handling
- Improvements of the new versus the old version
- Labs
- Unit testing
- Doc testing
- Integration testing
- Labs
- Labs
- Structs and methods
- Composition over Inheritance
- Encapsulation
- Traits
- Generics - static dispatch
- The Problem Generics Solve
- Object Traits - dynamic dispatch
- Labs
- Labs
- Tips for Using Iterators in Rust
- Summing Elements with an Iterator
- Understanding Iterator Consumers
- Applying Transformations with Map
- Labs
- Labs
- Crates in Rust
- File Structure
- Examples
- Tips for Working with Crates
- Programming in the large with Rust
- File Structure
- Labs
- File I/O
- Adding inotify to Cargo.toml
- Processes
- Labs
- Profiling
- Labs
- The Role of texttt {Box in Recursive Structures
- Rc and Arc
- Cell and RefCell
- Mutex and RwLock
- Labs
- Rust's Approach to Concurrency
- Threads in Rust
- Message Passing
- Shared State Concurrency
- Atomic Operations
- Asynchronous Programming in Rust
- Conclusion
- Labs
- Labs
- Labs
- Unsafe Rust
- Labs
Labs can be prepared and run on x86_64, ARM64 and RISCV64 systems. You should have at least 4GiB of RAM and 50GiB of free space. For the labs using containers and/or Kubernetes more RAM is advisable.