How to setup your Rust environment and necessary resources
Module Index | Module Name |
---|---|
Module 0 |
OVERVIEW OF RUST POLKADOT SDK |
Module 0.1 |
Introduction to Rust |
Module 0.2 |
Introduction to Polkadot SDK |
Module 1 |
RUST BASIC CONCEPTS |
Module 1.1 |
Common programming concepts |
Module 1.2 |
Program life cycle |
Module 1.3 |
Ownership & Borrow checker |
Module 1.4 |
Common Data Structures |
- Common programming concepts: primitive data types...
- Program life cycle: iterators, conditional statements...
- Ownership & Borrow checker
- Common data structures:
LinkedList
,Vector
,HashMap
- Struct, trait and enum
- Generic types, trait extension and advanced types (newtype, associated type)
- Lifetime notation
- Smart pointers and macros
- How to structure your Rust project?
- Substrate state machine
- Common blockchain data structures:
header
,extrinsic
,block
- Defining shared behaviour of traits
- WebAssembly & WASM executor
- Advanced macros used in Substrate:
construct_runtime!
,pallet::macro
Rust
| Rust Language Cheat SheetRust
| A bunch of links to blog posts, articles, videos, etc for learning Rust
Exercise
|Rust
| Polkadot Blockchain Academy - Qualification Exam: This exam is maintained by the Polkadot Blockchain Academy, for the benefit of the entire Rust community. The Academy accepts individuals modestly skilled in Rust, and maintains this exam to help everyone asses their proficiency being of a level we would consider for the program.Exercise
|Rust
| Rust by Practice: Practice Rust with challenging examples, exercises and projects
Couuse
|Rust
| Design Patterns in Rust: Learn common design patterns & anti-pattern in RustCourse
|Rust
| Comprehensive Rust (by Google Android Team): This is a free Rust course developed by the Android team at Google. The course covers the full spectrum of Rust, from basic syntax to advanced topics like generics and error handling.Tutorial
|WASM
| WebAssembly Fizzbuzz: WebAssembly crash courseTutorial
|WASM
| Port 1997 DOOM to Web Assembly: This course is in a WebAssembly Fizzbuzz course collectionVideo
| What and How about Futures and async/await in Rust - Jon Gjengset
Rust
| Advanced Concepts | Actor Model by Actix: Actor basically has their own execution context, communicates with each other through messaging channelRust
| Rust Forum - Pin use inFuture::poll()
: Discussion thread aboutFuture::pollPint(<&mut self>, _)
on Rust Forum, the discussion explains thePin
trait in a very deep level of low-level knowledge.Rust
| "Pin, Unpin and why Rust needs them" by CloudflareRust
| "Understanding pinning in Rust futures" on Hackernoon: This resource is very easy to understand, it gives a clear cut aboutFuture
andPinning
Rust
|std::pin::Pin
: Pin Projection: Learn more about pin_project crate for safe pin projectionRust
| "How Tokio schedule tasks?" on Rust MagazineRust
| Advanced Concepts | Scheduling InternalsRust
| About Tokio scheduler internal: Understanding how Tokio scheduler works under the hood