Rust WebAssembly with JS TS The Practical Guide

Learn to code in Rust. Compile the code to WebAssembly. Prepare JS/TS frontend and create browser-based Snake game.
Rust WebAssembly with JS TS The Practical Guide
File Size :
7.19 GB
Total length :
13h 24m



Filip Jerga


Last update




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

Rust WebAssembly with JS TS The Practical Guide


Basic programming knowledge


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.


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

New Courses

Scroll to Top