Rust WebAssembly with JS TS The Practical Guide
What you’ll learn
Create a browser game made in Rust/WebAssembly and Javascript
Understand Rust language in practical and fun way
Use gained knowledge to create your own applications
Establish yourself in the field of the exciting Rust development environment
Requirements
Basic programming knowledge
Description
What is Rust?Rust is a programing language. Rust is blazingly fast and memory-efficient: with no runtime or garbage collector, it can power performance-critical services, run on embedded devices, and easily integrate with other languages.What is WebAssembly? WebAssembly is a new type of code that can be run in modern web browsers — it is a low-level assembly-like language with a compact binary format that runs with near-native performance and provides languages such as C/C++, C#, and Rust with a compilation target so that they can run on the web. It is also designed to run alongside JavaScript, allowing both to work together.Is this course right for you?If you plan to start your career as a developer or improve your programming skills, this course is right for you. Learn how to build a browser game with minimal JS and Rust code compiled into WebAssembly instructions.You will get the confidence and skills required to start your projects during this course. In addition, you will get the right mindset to apply for a developer career.What are you going to work on?You will build the Snake game from scratch. You will learn to write code in Rust language, static type, compiled language.The course starts with an explanation and practical examples of the Rust language. You will learn Rust-specific features such as “moving” and “copying”Rust doesn’t have a garbage collector. Memory is cleared when the values are getting out of the scope. You will learn how to manage this concept with ease.The next feature you will learn of is borrowing and references. Through references, you will be able to access values without owning them.In the beginning lectures, we will also talk about memory management in Stack and the Heap structures, modularity, strings, and other essential topics.After Rust’s introduction lectures, you will start building your Snake game. You will learn how to structure the application modular and cleanly. You will build your own JS frontend, exposed through a simple Webpack development server. Later, you will transform JS implementation into TS (Typescript). This will specify types and be on the same page as Rust code.You will build your rust backend code, the backbone of our game. You will learn how to compile Rust code into WebAssembly code. WebAssembly is code that can run in the browser. It’s faster (almost Native speed) and more efficient than JS.At the end of the course, we will create a production server and deploy our game to Heroku, so anybody on the internet can play our game.
Overview
Section 1: Introduction
Lecture 1 Introduction
Lecture 2 [Optional] How to resolve issues
Lecture 3 [Optional] Lecture Structure
Section 2: Rust Preparation
Lecture 4 Rust Installation
Lecture 5 Rust Versions
Lecture 6 Main Func
Lecture 7 Mut Variables
Lecture 8 Cargo Init
Section 3: Basics Types
Lecture 9 New function
Lecture 10 Primitive types
Lecture 11 [AI] Prim Numbers 2
Lecture 12 Primitive Types 3
Section 4: Move & Copy
Lecture 13 AI Stack
Lecture 14 AI More Stack
Lecture 15 String Heap
Lecture 16 String Move
Lecture 17 AI Moves additional explanation
Lecture 18 Return moved value
Lecture 19 Copying age
Section 5: Reference & Borrowing
Lecture 20 References
Lecture 21 Mutable borrow
Lecture 22 AI Mutable Borrow Example
Lecture 23 Dereference
Lecture 24 AI Dereferencing
Section 6: Strings
Lecture 25 String vs &str
Lecture 26 String slice
Lecture 27 String Slice +
Lecture 28 Clone
Section 7: Box & Struct
Lecture 29 Box type
Lecture 30 Struct
Lecture 31 Struct functions, methods
Lecture 32 Constructors
Section 8: Enums
Lecture 33 Enums
Lecture 34 Enum values
Lecture 35 Enum match
Lecture 36 If Let
Lecture 37 Struct no fields
Section 9: Traits
Lecture 38 Trait
Lecture 39 Trait narrowing
Section 10: Modularity
Lecture 40 Modularity
Lecture 41 Import options
Lecture 42 Mod keyword
Lecture 43 Nested modules
Lecture 44 Pub fields
Lecture 45 Super keyword
Lecture 46 External lib
Lecture 47 Display Trait
Section 11: Into to WebAssembly
Lecture 48 WebAssembly start + Link
Lecture 49 More wasm
Lecture 50 Load Wasm in Browser
Lecture 51 Dev Server
Lecture 52 [AI] webpack dev server
Lecture 53 Copy plugin
Lecture 54 Fetch wasm
Lecture 55 Import to wasm
Lecture 56 Wasm Memory
Lecture 57 JS Memory
Section 12: Preparing the Game
Lecture 58 Pack Webassembly
Lecture 59 Init Our Code
Lecture 60 [AI] pkg files
Lecture 61 Import FN to webassembly
Lecture 62 Bootstrap
Lecture 63 Wee alloc
Section 13: Starting the Game
Lecture 64 World struct
Lecture 65 Getter width
Lecture 66 Get canvas
Lecture 67 Draw World
Lecture 68 Create snake
Lecture 69 Draw Snake
Lecture 70 [AI] Debugger
Section 14: Update the World
Lecture 71 World Update
Lecture 72 Set Timeout
Lecture 73 Typescript
Lecture 74 Snake random idx
Lecture 75 Direction
Lecture 76 Move in one row
Lecture 77 Up and Down
Lecture 78 Function refactor
Section 15: Moving Snake
Lecture 79 Keydown events
Lecture 80 Change snake dir
Lecture 81 Snake Cells
Lecture 82 Cell Ptr
Lecture 83 Invalid pointer
Lecture 84 Render all cells
Lecture 85 Snake color
Lecture 86 Refactor directions
Lecture 87 Direction profiling
Section 16: Move Snake Cells
Lecture 88 Move cells
Lecture 89 Change snake dir check
Lecture 90 Improve snake dir
Section 17: Reward Cell
Lecture 91 Reward cell
Lecture 92 Import Date to Rust
Lecture 93 Random function
Lecture 94 Check if body contains reward
Lecture 95 Consume reward cell
Lecture 96 AI Reward cell
Lecture 97 Fn to gen reward
Lecture 98 Reward cell generate fix
Section 18: Game status
Lecture 99 Game Status
Lecture 100 Simple UI
Lecture 101 Start the game
Lecture 102 Handle game status
Lecture 103 Draw game status
Section 19: Game Outcomes
Lecture 104 Win Case
Lecture 105 Lost Case
Lecture 106 Mapping function
Lecture 107 Some reward
Lecture 108 Add points
Lecture 109 Handle play loop
Section 20: Deployment
Lecture 110 Prod server
Lecture 111 CLI installation
Lecture 112 Package commands
Lecture 113 Deployment & Course Finish
Beginners as well as experienced devs interested in Rust and C++ like languages,People looking for the practical Rust/WebAssembly/TS development guide.,This course is for everyone eager to understand how to build an app from scratch
Course Information:
Udemy | English | 13h 24m | 7.19 GB
Created by: Filip Jerga
You Can See More Courses in the Developer >> Greetings from CourseDown.com