GitHub Repo updated to Axum 0.7. See commit: https://github.com/jeremychone-channel/rust-axum-course/commit/52ded5e01efce0fc237280d9a5e6b8d7c1436d9c
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-channel/rust-axum-course (MIT or Apache 2.0, all free to use)
Big thanks to CrabNebula (https://crabnebula.dev/) for sponsoring this video.
Help support this channel: https://patreon.com/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 - https://twitter.com/jeremychone
- Discord General Rust - https://discord.gg/W2besKCzjx
- Discord Awesome-App - https://discord.gg/XuKWrNGKpC
- Patreon - https://patreon.com/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 -
https://www.youtube.com/watch?v=pwmIQzLuYl0&list=PL7r-PXl6ZPcCIOFaL7nVHXZvBmHNhrh_Q
- Rust Builder Pattern -
https://www.youtube.com/watch?v=Z_3WOSiYYFY&list=PL7r-PXl6ZPcCIOFaL7nVHXZvBmHNhrh_Q
- Rust Builder Pattern -
https://www.youtube.com/watch?v=Z_3WOSiYYFY&list=PL7r-PXl6ZPcCIOFaL7nVHXZvBmHNhrh_Q
- Quick Start Code Layout -
https://www.youtube.com/watch?v=oxx7MmN4Ib0&list=PL7r-PXl6ZPcCIOFaL7nVHXZvBmHNhrh_Q
- AWESOME-APP Full Overview - Rust template for building Awesome Desktop Application:
https://www.youtube.com/watch?v=BY_ZjPGqJJk&list=PL7r-PXl6ZPcCIOFaL7nVHXZvBmHNhrh_Q
- Tauri Quick Introduction (Desktop App wit Rust Programming):
https://www.youtube.com/watch?v=kRoGYgAuZQE&list=PL7r-PXl6ZPcCIOFaL7nVHXZvBmHNhrh_Q
- Rust Web App tutorials series:
https://www.youtube.com/watch?v=VIig9IcQ-w8&list=PL7r-PXl6ZPcCIOFaL7nVHXZvBmHNhrh_Q&list=PL7r-PXl6ZPcCLvwpdD2Vj1O4CyoFTiHKd
- Rust Bevy Full Tutorial - Game Development with Rust:
https://www.youtube.com/watch?v=j7qHwb7geIM&list=PL7r-PXl6ZPcCIOFaL7nVHXZvBmHNhrh_Q
- Rust for Java Developers series:
https://www.youtube.com/watch?v=iFdh4sPC5Tg&list=PL7r-PXl6ZPcD63DS2djSiz4SlXkaTfobc&index=2&t=654s
Playlists:
- Rust For Desktop App: https://youtube.com/playlist?list=PL7r-PXl6ZPcAQAi1lfVrtHCSbaJbwZ4O8
- Everything Rust Programming - Tutorials, Courses, Tips, Examples: https://youtube.com/playlist?list=PL7r-PXl6ZPcCIOFaL7nVHXZvBmHNhrh_Q
- Rust Programming for Web Development: https://youtube.com/playlist?list=PL7r-PXl6ZPcCLvwpdD2Vj1O4CyoFTiHKd
AWESOME-APP ➜ https://awesomeapp.dev - Rust Templates for building awesome applications.
Rust AWESOME-APP GitHub - https://github.com/orgs/rust-awesome-app/repositories
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.