Foy est l’implémentation Jakarta Servlet 6.1 de l’écosystème Vidocq. Elle se greffe sur le transport HTTP Chappe et tire son CDI optionnel de Vauban. Honorer le contrat Servlet sans en porter le poids historique : pas de classpath, pas de scan runtime, pas de réflexion à chaud.

Origine du nom

Vincent-Louis-Alphonse Foy (1796-1888), haut fonctionnaire français, directeur du service télégraphique français de 1833 à 1853. Successeur (via Pierre-François Marchal) des frères Chappe à la tête de l’Administration centrale de la télégraphie créée par ordonnance royale du 24 août 1833. Co-inventeur du télégraphe de Foy et Breguet (années 1840) qui réutilisait le code Chappe sur des lignes électriques. Voir Wikipédia FR.

La métaphore est directe : Foy hérite du transport Chappe. Là où Alphonse Foy a repris en 1833 l’infrastructure des frères Chappe pour la faire évoluer sans en jeter les codes, le module Foy reprend le moteur HTTP Chappe pour y greffer la couche Servlet 6.1 — même protocole en surface, ingénierie repensée en dessous.

En un coup d’œil

Spec implémentée

Jakarta Servlet 6.1

Repo

https://codeberg.org/Vidocq/foy

Java

25 (LTS), virtual threads

Modules JPMS

io.vidocq.foy.api, io.vidocq.foy.core, io.vidocq.foy.chappe, io.vidocq.foy.cdi.vauban

Dépendances runtime

jakarta.servlet-api, jakarta.cdi-api (statique), https://codeberg.org/Vidocq/chappe (transport), https://codeberg.org/Vidocq/vauban (CDI)

TCK

⚠️ partiel — environ 90 % du TCK officiel Jakarta Servlet 6.1 sur les packages api.*. Détails ici.

Positionnement dans l’écosystème

Foy est la couche servlet : il transforme une connexion HTTP Chappe en exécution Servlet/Filter/Listener, et expose le BeanManager Vauban aux beans de l’application.

Diagram

Foy partage le runtime Chappe avec Cassini (REST 4.0). Une même JVM peut servir des Servlets historiques (Foy) et des ressources JAX-RS (Cassini) sur le même connecteur Chappe.

Bugs et benchmarks

  • lien:https://codeberg.org/Vidocq/foy/src/branch/main/BUG.md[BUG.md] — bugs reproductibles, hypothèses, statut.

  • lien:https://codeberg.org/Vidocq/foy/src/branch/main/BENCH.md[BENCH.md] — chiffres JMH/wrk, deltas vs run précédent. Aucun chiffre n’est inline dans cette doc.