1. Il Linguaggio di Programmazione Rust
  2. Prefazione
  3. Introduzione
  4. Primi Passi
    1. Installazione
    2. Hello, World!
    3. Hello, Cargo!
  5. Programmare un Gioco di Indovinelli
  6. Concetti Comuni di Programmazione
    1. Variabili e Mutabilità
    2. Tipi di Dato
    3. Funzioni
    4. Commenti
    5. Controllare il Flusso
  7. Capire la Ownership
    1. Cos’è la Ownership?
    2. Reference e Borrowing
    3. Il Type Slice
  8. Utilizzare le Struct per Strutturare Dati Correlati
    1. Definire e Istanziare le Struct
    2. Un Esempio di Programma Che Usa Struct
    3. Metodi
  9. Enumerazioni e Corrispondenza dei Pattern
    1. Definire un’Enum
    2. Controllare il Flusso col Costrutto match
    3. Controllare il Flusso con if let e let else
  10. Pacchetti, Crate, e Moduli
    1. Pacchetti e Crate
    2. Controllare Scope e Privacy con i Moduli
    3. Percorsi per Fare Riferimento a un Elemento nell’Albero dei Moduli
    4. Portare i Percorsi in Scope con la Parola Chiave use
    5. Separare i Moduli in File Diversi
  11. Collezioni Comuni
    1. Memorizzare Elenchi di Valori con Vettori
    2. Memorizzare Testo Codificato UTF-8 con Stringhe
    3. Memorizzare Chiavi con Valori Associati in Mappe Hash
  12. Gestione degli Errori
    1. Errori Irreversibili con panic!
    2. Errori Reversibili con Result
    3. panic! o non panic!
  13. Type Generici, Trait e Lifetime
    1. Tipi di Dati Generici
    2. Definire il Comportamento Condiviso con i Trait
    3. Validare i Reference con la Lifetime
  14. Scrivere Test Automatizzati
    1. Come Scrivere dei Test
    2. Controllare Come Vengono Eseguiti i Test
    3. Organizzare i Test
  15. Un progetto I/O: Creare un Programma da Riga di Comando
    1. Ricevere Argomenti dalla Riga di Comando
    2. Leggere un File
    3. Refactoring per Migliorare Modularità e Gestione degli Errori
    4. Aggiungere Funzionalità con il Test-Driven Development
    5. Lavorare con le Variabili d’Ambiente
    6. Scrivere Messaggi di Errore su Standard Error
  16. Funzionalità dei Linguaggi Funzionali: Iteratori e Chiusure
    1. Chiusure
    2. Elaborare una Serie di Elementi con Iteratori
    3. Migliorare il Nostro Progetto I/O
    4. Prestazioni di Cicli e Iteratori
  17. Maggiori informazioni su Cargo e Crates.io
    1. Personalizzare le Build con i Profili di Rilascio
    2. Pubblicare un Crate su Crates.io
    3. Spazi di Lavoro Cargo
    4. Installazione di Binari con cargo install
    5. Estendere Cargo con Comandi Personalizzati
  18. Puntatori Intelligenti
    1. Utilizzare Box<T> per Puntare ai Dati nell’Heap
    2. Trattare i Puntatori Intelligenti Come Normali Reference
    3. Eseguire del Codice Durante la Pulizia con il Trait Drop
    4. Rc<T>, il Puntatore Intelligente con Conteggio dei Reference
    5. RefCell<T> e il Modello di Mutabilità Interna
    6. Cicli di Riferimento Possono Causare Perdite di Memoria
  19. Concorrenza Senza Paura
    1. Usare i Thread Per Eseguire Codice Simultaneamente
    2. Trasferire Dati tra Thread Usando il Passaggio di Messaggi
    3. Concorrenza a Stato Condiviso
    4. Concorrenza Estensibile con Send e Sync
  20. Fondamenti di Programmazione Asincrona: Async, Await, Future e Stream
    1. Future e la Sintassi Async
    2. Applicare la Concorrenza con Async
    3. Lavorare con un Numero Qualsiasi di Future
    4. Stream: Future in Sequenza
    5. Uno Sguardo Più Da Vicino ai Trait per Async
    6. Future, Task e Thread
  21. Funzionalità della Programmazione Orientata agli Oggetti
    1. Caratteristiche dei Linguaggi Orientati agli Oggetti
    2. Usare gli Oggetti Trait per Astrarre Comportamenti Condivisi
    3. Implementare un Modello di Design Orientato agli Oggetti
  22. Patterns and Matching
    1. All the Places Patterns Can Be Used
    2. Refutability: Whether a Pattern Might Fail to Match
    3. Pattern Syntax
  23. Advanced Features
    1. Unsafe Rust
    2. Advanced Traits
    3. Advanced Types
    4. Advanced Functions and Closures
    5. Macros
  24. Final Project: Building a Multithreaded Web Server
    1. Building a Single-Threaded Web Server
    2. Turning Our Single-Threaded Server into a Multithreaded Server
    3. Graceful Shutdown and Cleanup
  25. Appendice
    1. A - Parole Chiave
    2. B - Operators and Symbols
    3. C - Derivable Traits
    4. D - Utili Strumenti di sviluppo
    5. E - Editions
    6. F - Traduzioni del Libro
    7. G - How Rust is Made and “Nightly Rust”
    8. H - Note di Traduzione