/rust-app-template

A curated list of how to get started working with Rust

Primary LanguageRust

A Comprehensive Guide to Building Backend Applications with Actix Web in Rust

Introduction

  • ☑ What is Rust?
  • ☑ Why Actix Web?
  • ☑ Overview of the Course

Setting up the Development Environment

  • ☑ Installing Rust
  • ☑ Installing Cargo
  • ☑ Setting up an IDE or Text Editor
  • ☑ Creating a New Actix Web Project

Fundamentals of Actix Web

  • ☑ Understanding Actors and Futures
  • ☑ Hello world
  • ☑ Handling HTTP Requests and Responses
  • ☑ Routing and Path Parameters
  • ☑ Query Parameters and Form Data

Building a RESTful API

  • ☑ RESTful APIs
  • ☑ Handling JSON Data
  • ☑ Error Handling and Status Codes

Database Integration

  • ☑ Logging and tracing
  • ☑ Using and managing env variables
  • ☑ Introduction to Databases in Rust
  • ☑ Setting up a PostgreSQL Database
  • ☑ Introductin to ORMs (e.g., Diesel)
  • ☑ Querying the Database
  • ☑ Handling Transactions

Authentication and Authorization

  • ☑ Introduction to Authentication and Authorization
  • ☑ Implementing Authentication with JWT
  • ☑ Securing Routes with Authorization
  • ☑ Session and session management
    • ☑ Introduction to Session Management
    • ☑ Implementing Session Stores (e.g., Cookie-based, Redis)
    • ☑ Handling Session Data
    • ☑ Securing Sessions

WebSocket Server

  • ☑ Introduction to WebSockets
  • ☑ Setting up a WebSocket Server with Actix Web
  • ☑ Handling WebSocket Messages
  • ☑ Broadcasting Messages
  • ☑ Integrating WebSockets with a Database

Static files

  • ☑ Serving Static Files
  • ☑ Handling File Uploads
  • ☑ Streaming File Downloads
  • ☑ Integrating with Cloud Storage (e.g., AWS S3)

Cron and Scheduling

  • ☑ Introduction to Cron and Scheduling
  • ☑ Setting up Scheduled Tasks with Actix Web
  • ☑ Handling Recurring Jobs
  • ☑ Integrating with External Scheduling Services

[//]: <> * * * * * command to execute | | | | | | | | | +-- Day of week (0 - 7) (Sunday=0 or 7) | | | +---- Month (1 - 12) | | +------ Day of month (1 - 31) | +-------- Hour (0 - 23) +---------- Minute (0 - 59)

Message Queues and NATS

  • ☑ Introduction to Message Queues and NATS
  • ☑ Setting up a NATS Server
  • ☑ Publishing and Subscribing to Messages
  • ☑ Handling Asynchronous Tasks with NATS

Testing and Debugging

  • ☑ Writing Unit Tests
  • ☑ Integration Testing with Actix Web
  • ☐ Debugging Techniques
  • ☐ Logging and Monitoring

Deployment and Scaling

  • ☑ Building for Production
  • ☑ Deploying to a Cloud Platform (e.g., AWS, DigitalOcean, shuttle.rs)
  • ☑ Load Balancing and Scaling
  • ☑ Monitoring and Logging in Production

Advanced Topics

  • ☑ Middleware and Filters
  • ☑ Caching Strategies
  • ☑ Asynchronous Programming with Tokio
  • ☑ Integrating with External APIs
  • ☑ WebAssembly and Serverless Functions

Real-world Projects and Case Studies

  • ☑ A production-grade chat server
  • ☐ Rust for distrubuted systems
  • ☐ Rust for IOT+ systems
  • ☑ Rust as a Backend server
  • ☑ Rust for serverless functions
  • ☐ Rust for GUI application
  • ☐ Rust for CLI application