Rust non è solo programmazione di sistema a basso livello: grazie alla concorrenza sicura, all’ecosistema asincrono e alla sua forte tipizzazione, rappresenta una delle scelte a oggi più performanti e affidabili per costruire servizi web, API RESTful e microservizi moderni.

In questa live studiamo i concetti fondamentali per sviluppare applicazioni web in Rust: dalla gestione delle richieste HTTP alla manipolazione dei dati in formato JSON, fino alla gestione sicura dello stato applicativo e degli errori.

Se te lo sei perso, puoi guardare l’episodio precedente oppure recuperare il primo episodio.

📍 Cosa faremo in diretta:

  1. Configurazione e architettura del progetto: organizzazione del workspace con Cargo e panoramica sull’ecosistema web di Rust.
  2. Routing e handler asincroni: definizione degli endpoint HTTP, gestione dei metodi (GET, POST, PUT, DELETE) e ciclo di vita delle richieste asincrone.
  3. Serializzazione e deserializzazione: parsing, validazione e invio di dati strutturati (JSON) sfruttando il type system di Rust.
  4. Stato condiviso e concorrenza: gestione sicura di risorse condivise tra più thread e richieste concorrenti in memoria.
  5. Error Handling e risposte HTTP: pattern per una gestione robusta degli errori e generazione di codici di stato e risposte HTTP coerenti.

🎯 Argomenti affrontati:

  • Modello asincrono e gestione della concorrenza nel web con Rust
  • Struttura e ciclo di vita di un server HTTP moderno
  • Una panoramica dei framework principali: Axum, Actix Web, Rocket ecc.
  • Definizione dei percorsi (routing) e gestione dei parametri di richiesta
  • Serializzazione, deserializzazione e type-safety dei payload
  • Pattern per la gestione tipizzata degli errori e middleware

💡 Prerequisiti:

Conoscenza di base della sintassi di Rust e dei concetti di ownership/borrowing (o aver seguito le puntate precedenti). È utile avere una minima familiarità con i concetti base del protocollo HTTP e del backend web.