01 // LE PROJET EN BREF

ZIA

C++

Un serveur web écrit de zéro, dont toutes les fonctionnalités sont des modules chargés à chaud.

Écrire un serveur web complet, capable de servir des pages en HTTP comme en HTTPS. La particularité : le serveur lui-même ne sait presque rien faire. Toutes ses capacités — servir un fichier, exécuter du PHP, journaliser, chiffrer — sont des modules séparés qu'on active dans un fichier de configuration, et qui se rechargent tout seuls quand on modifie ce fichier, sans jamais redémarrer le serveur.

Serveur HTTP/HTTPS en C++ à architecture en pipeline de modules chargés dynamiquement, configuration JSON rechargée à chaud par surveillance de fichier, douze modules fournis.

PRINCIPALC++
RÉALISATIONPROJET D’ÉQUIPE
VÉRIFICATIONGoogleTest
SOURCEINSPECTOR READY
PIÈCES JOINTES (Images, Photos, Videos)

03 // APPORTS CLÉS

  • Rechargement à chaud des modules et de la configuration, sans redémarrage
  • Douze modules, dont une passerelle PHP CGI et une couche TLS
  • API de modules documentée, permettant d'en écrire de nouveaux sans toucher au cœur

AU-DELÀ DU SUJET

  • Rechargement à chaud de la configuration et des modules, non exigé, qui permet de modifier le serveur sans l'arrêter
  • Image Docker et script de lancement (run.sh)
  • Documentation d'API (docs/api.md) et Doxyfile pour la documentation générée
  • Client de test en shell (tests/client.sh) avec requêtes types
  • Tests GoogleTest

04 // ARBORESCENCE DU CODE

LECTURE DES SOURCES…