A hands-on Rust programming course with practical modules covering web development, syntax, ownership, structs, error handling, web frameworks, databases, configuration, testing, and application integration.
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
- Location:
module-8-unit-testing/ - Focus: Unit, async, database, route, and integration testing
- Location:
module-9-final-project/ - Focus: A complete Actix Web to-do API integrating configuration, SQLite, migrations, errors, logging, and tests
- 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
- Practice unit and integration testing in Module 8
- Integrate the course concepts in the Module 9 final project
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! 🦀