Programmation réseau en Rust
286 pages
French
PDF
4.5

Programmation réseau en Rust

Programmation réseau en Rust

Auteur :

Année :

Résumé :

Introduction

Le livre « Network Programming with Rust » (auteur — Abhijit Gadgil, 2018, 286 pages) est un guide pratique consacré à la création d'applications réseau en langage Rust. À une époque où la performance et la sécurité mémoire deviennent des facteurs critiques, Rust offre une combinaison unique de contrôle bas niveau et de garanties de sécurité. L'auteur se fixe pour objectif d'apprendre au lecteur non seulement à écrire du code réseau, mais à le faire efficacement, en utilisant tous les points forts du langage : le système de possession (ownership), l'emprunt (borrowing), les lifetimes et le puissant système de types.

De quoi parle le livre

Le livre couvre un large éventail de sujets — des bases du travail avec les sockets à la construction de serveurs asynchrones à forte charge. Il commence par une introduction à l'écosystème Rust et aux concepts fondamentaux de la communication réseau (modèle OSI, TCP/UDP). Ensuite, il aborde successivement :

  • Le travail avec les sockets bloquants et non bloquants ;
  • Les protocoles TCP et UDP, leur implémentation en Rust ;
  • La création de serveurs et clients HTTP en utilisant des crates populaires (hyper, reqwest) ;
  • La programmation asynchrone avec tokio et async/await (au moment de la sortie du livre — futures) ;
  • La sécurité : chiffrement TLS/SSL, travail avec les certificats ;
  • L'interaction avec les bases de données via le réseau (exemple avec PostgreSQL) ;
  • Les tests d'applications réseau et le débogage.

Chaque chapitre contient des exemples de code pratiques, que vous pouvez immédiatement exécuter et modifier.

À qui s'adresse ce livre

Ce livre est destiné aux développeurs déjà familiers avec les bases de Rust (syntaxe, possession, traits). Si vous commencez tout juste à apprendre le langage, il est recommandé de lire d'abord The Rust Programming Language (le guide officiel). Une compréhension de base des protocoles réseau (TCP/IP, HTTP) est également supposée.

Public cible :

  • Les développeurs backend souhaitant passer à Rust pour créer des services hautes performances ;
  • Les programmeurs système travaillant sur des démons réseau, des proxies, des équilibreurs de charge ;
  • Les étudiants et chercheurs intéressés par la programmation système sécurisée ;
  • Les développeurs C/C++ qui veulent voir comment Rust résout les problèmes de sécurité mémoire dans le code réseau.

Ce que le lecteur apprendra

Après avoir lu ce livre, vous serez capable de :

  • Créer des serveurs et clients TCP à partir de zéro, en gérant les connexions en mode multithread et asynchrone ;
  • Implémenter vos propres protocoles sur UDP ;
  • Écrire des serveurs HTTP en utilisant la crate hyper et gérer les requêtes/réponses ;
  • Utiliser tokio pour construire des applications réseau asynchrones avec une surcharge minimale ;
  • Ajouter le chiffrement TLS à vos applications avec native-tls ou rustls ;
  • Travailler avec des bases de données via des pilotes réseau (par exemple, tokio-postgres) ;
  • Écrire des tests unitaires et d'intégration pour le code réseau, en utilisant des mocks et des serveurs de test ;
  • Comprendre le fonctionnement interne des crates réseau populaires et choisir celles qui conviennent à vos tâches.

Points forts

Le livre se distingue par plusieurs qualités importantes :

  • Orientation pratique. Chaque concept est étayé par du code fonctionnel, adaptable à vos propres projets.
  • Immersion profonde dans l'asynchronisme. L'auteur explique en détail le modèle async/await (via futures) et montre comment éviter les erreurs courantes (par exemple, le blocage de la boucle d'événements).
  • Accent sur la sécurité. Rust est connu pour sa sécurité, et le livre démontre systématiquement comment le système de types prévient des classes entières de vulnérabilités (race conditions, use-after-free, débordement de tampon).
  • Pertinence des exemples. Malgré la date de 2018, la plupart des exemples restent pertinents,

Recommendations