A hands-on Rust programming course with practical modules covering web development, syntax, ownership, structs, error handling, web frameworks, databases, and configuration.
This repository contains multiple modules, each focusing on different Rust concepts:
- Location:
module-1-hello-web/ - Focus: Introduction to Rust and web development
- Technologies: Actix-web, Tokio
- Key Concepts:
- Setting up a basic Actix-web server
- Creating HTTP endpoints
- Using async/await in Rust
- Running a web server
- Location:
module-2-syntax/ - Focus: Rust syntax fundamentals
- Location:
module-3-ownership/ - Focus: Rust's ownership system and memory management
- Location:
module-4-structs-errors/ - Focus: Data structures and error handling in Rust
- Location:
module-5-web-framework/ - Focus: Building web applications with Rust frameworks
- Location:
module-6-database-basics/ - Focus: Database integration and basic operations
- Location:
module-7-configuration/ - Focus: Application configuration and environment management
- Rust toolchain installed (rustc, cargo)
- Basic understanding of programming concepts
Each module is a standalone Rust project. To run a specific module:
cd module-1-hello-web
cargo runThe server will start and you can access it at http://127.0.0.1:8080 (or the port specified in each module).
Module 1 demonstrates a simple web server with two endpoints:
GET /hello- Returns "Hello, Rust!"GET /goodbye- Returns "Goodbye Dometrain, go build some Rust!"
To run:
cd module-1-hello-web
cargo runThen visit:
The modules are designed to be completed in order:
- Start with Module 1 to get familiar with Rust web development
- Move to Module 2 for syntax fundamentals
- Learn Rust's unique ownership system in Module 3
- Explore structs and error handling in Module 4
- Build more complex web applications in Module 5
- Add database functionality in Module 6
- Learn configuration management in Module 7
cargo buildcargo testcargo fmtcargo clippyThis is an educational repository for learning Rust. Each module may have its own licensing considerations based on the dependencies used.
This repository is structured as a learning resource. If you find issues or have suggestions for improvement, feel free to:
- Open an issue
- Submit a pull request
- Provide feedback on the course structure
Happy Rust coding! 🦀