Rust Programming - Full Course for Axum: An Awesome Web Framework for Rust. Not too low-level, not too high-level, well-componentized, complete, and with great ergonomics.
GitHub Code: https://github.com/jeremychone-channe... (MIT or Apache 2.0, all free to use)
Big thanks to CrabNebula (https://crabnebula.dev/) for sponsoring this video.
Help support this channel: / jeremychone
IMPORTANT:
On *Windows* for the "link" file issue when running the cargo test and run in parallel. The solution is to move `tests/quick_dev.rs` to the `examples` folder, rename the function to `#[tokio::main]`, and it should allow you to do the following:
In Terminal 1: `cargo watch -q -c -w src/ -x run`
In Terminal 2: `cargo watch -q -c -w examples/ -x 'run --example quick_dev'`
(we will follow this scheme in the next videos)
Tech notes:
`cargo install cargo-watch` - If you haven't already, make sure to install Cargo Watch.
On Windows, there appears to be an issue when running two Cargo commands on the same project simultaneously. If you have a solution, please add a comment and I will include it here.
Don't use `store: ... Vec` in production code, as it won't scale. It's just for this demo. I've created a new mock-store crate that handles this in a better way (for future videos).
Content:
00:00:00 - Intro
00:00:53 - Hello World Router
00:03:10 - Quick_Dev
00:06:21 - Hello Route - Query Params
00:08:51 - Hello Route - Path Param
00:11:15 - routes_static
00:13:37 - First LOGIN API
00:21:55 - Login Auth-Token Cookies
00:24:32 - Rest API - Mock Model/Store
00:32:30 - CRUD - REST API
00:40:12 - First Middleware - mw_require_auth
00:45:52 - require_auth - token parsing
00:49:13 - First Extractor - Ctx
00:54:01 - Ctx in mw_require_auth
00:56:29 - Ctx in the REST APIs
00:58:31 - mw_ctx_resolver
01:04:36 - Error Client & Server
01:12:42 - Server Log line
#RustProgramming #RustLang #WebDevelopment #completecourse
Jeremy Chone:
Twitter - / jeremychone
Discord General Rust - / discord
Discord Awesome-App - / discord
Patreon - / jeremychone
Next: In the next tutorial, we will build upon this course and lay the foundation for a real production app.
Remove the demo content (hello/hello2, and REST Ticket) and do some cleanup.
Refactor the model layer (still using a mock-store, but making the design more production-ready. We will have two entities `Task` and `User`).
Implement multi-scheme password encryption (using a secret and user_pwd_salt, as well as a #scheme_id#encrypted format to allow seamless encryption scheme evolution).
Implement Secure Web Token, (using a secret and `user_token_salt`).
Use RPC (JSON-RPC) following the [https://joql.org](https://joql.org) notation.
Other popular Rust Programming videos:
Rust Type State Builder Pattern - • Rust Programming: TypeState Builder Patter...
Rust Builder Pattern - • Rust Programming: The Ultimate Builder Pat...
Rust Builder Pattern - • Rust Programming: The Ultimate Builder Pat...
Quick Start Code Layout - • Rust - Simple Code Boilerplate & Structure...
AWESOME-APP Full Overview - Rust template for building Awesome Desktop Application: • Building Awesome Desktop App with Rust, Ta...
Tauri Quick Introduction (Desktop App wit Rust Programming): • Rust Tauri 1.0 - Quick Intro - Rust Deskto...
Rust Web App tutorials series: • Rust Web App - 1/3 - Data Access
Rust Bevy Full Tutorial - Game Development with Rust: • Rust Bevy Full Tutorial - Game Development...
Rust for Java Developers series: • Rust for Java Developers 1/3 - Introductio...
Playlists:
Rust For Desktop App: • JC - Rust Programming for Desktop App
Everything Rust Programming - Tutorials, Courses, Tips, Examples: • JC - Rust - Everything Rust Programming - ...
Rust Programming for Web Development: • JC - Rust Programming for Web Development
AWESOME-APP ➜ https://awesomeapp.dev - Rust Templates for building awesome applications.
Rust AWESOME-APP GitHub - https://github.com/orgs/rust-awesome-...
Other notes:
Tool used to do the green lines. ScreenBrush on Mac App Store (Gromit seems to be the equivalent on Linux)
Edited with Davinci Resolve.