Vidocq Runtime est en version 0.1.0-SNAPSHOT. Toute migration concrète est prématurée — cette page documente les correspondances pour anticiper.

Tableau comparatif synthétique

Aspect Vidocq Runtime Quarkus Helidon MP Spring Boot Open Liberty Payara Micro

JDK minimum

25

17

21

17

17

17

Modèle de threading I/O

Virtual threads

Vert.x event loop

Helidon Níma (VT)

Tomcat / Netty

Plateforme threads

Plateforme threads

Build-time vs runtime

Build-time (Class-File API)

Build-time (Gizmo / ASM)

Runtime

Runtime

Runtime

Runtime

JPMS strict

Oui

Non

Non

Non

Non

Non

AOT native

GraalVM + Leyden CDS

GraalVM

GraalVM

GraalVM

Partiel

Partiel

Cold start typique (jlink/CDS)

~1 s

~0.5 s (native)

~1 s

~3 s

~5 s

~3 s

Taille image autonome

~40 Mo (jlink)

~80 Mo (native)

~50 Mo

~70 Mo

~150 Mo

~80 Mo

Dépendance ASM / Byte Buddy

Aucune

ASM (Gizmo)

ASM

ByteBuddy + ASM

ASM

ASM

Les chiffres ci-dessus sont indicatifs et seront mis à jour à mesure des runs BENCH.md. Voir le BENCH.md racine du workspace pour les mesures exactes.

Depuis Quarkus

Vidocq Runtime emprunte explicitement le pattern d’extensions Quarkus.

Quarkus Vidocq Runtime Note

io.quarkus.deployment.annotations.BuildStep

io.vidocq.runtime.spi.BuildStep

API directement transposable

Recorder Gizmo (ASM)

Recorder Class-File API (JEP 484)

Pas d’ASM — bytecode standard JDK

ArC (CDI runtime)

Vauban

Build-time dans les deux cas

RESTEasy Reactive

Cassini sur Chappe

Pas de Vert.x — virtual threads

Hibernate Reactive / ORM

Mansart

JDBC + virtual threads, pas de Vert.x SQL Client

Jackson

Champollion

Implémentation JSON-B 3.0 / JSON-P 2.1

Les exemples compare-to/ (à venir) du workspace illustreront la migration d’une extension simple.

Depuis Helidon MP

  • Helidon SE (Web) → Chappe + Cassini.

  • Helidon MP → Vidocq Runtime directement.

  • application.yaml → MicroProfile Config (vidocq.properties ou env).

  • Helidon Níma utilise déjà des virtual threads — la transition est conceptuellement transparente.

Depuis Spring Boot

Spring Boot ne s’aligne pas naturellement sur le modèle MicroProfile, et la migration touche le programmation model.

Spring Boot Vidocq Runtime Note

@SpringBootApplication

Vidocq.main(args) + une classe quelconque

Pas de classe d’application requise

@RestController

@Path + @GET/@POST

Standard Jakarta REST

@Service, @Component

@ApplicationScoped

CDI Lite

@Autowired

@Inject

Constructor injection privilégiée

@ConfigurationProperties

@VidocqConfig + interface

MicroProfile Config

application.yml

vidocq.properties + profils MP

Préfixe %<profil>.

Spring Data JPA

Mansart (Jakarta Data 1.0)

Repositories APT-générés

Depuis Open Liberty / WildFly

  • server.xml → MicroProfile Config + extensions Vidocq Runtime.

  • EAR → JAR autonome + plugin Maven.

  • JNDI → CDI lookup via Vauban.bootstrap().

  • Annotations Jakarta — directement compatibles, le programming model reste identique.

Depuis Payara Micro

Payara Micro et Vidocq Runtime partagent la cible MicroProfile. La principale différence est l’approche build-time : Payara Micro embarque GlassFish ; Vidocq Runtime produit un binaire jlink minimal sans serveur d’application classique.

  • payara-micro --deploy app.warjava -jar app-runner.jar.

  • payara-micro.jar (~ 80 Mo) → image jlink (~40 Mo).

  • Tous les feature.xml MicroProfile activés sont remplacés par les extensions correspondantes côté Vidocq Runtime.

Tableau MicroProfile

Spec MicroProfile Statut Vidocq Runtime Extension

MP Config 3.x

Planifié

vidocq-runtime-config-extension

MP Health 4.x

Planifié

vidocq-runtime-health-extension

MP Metrics 5.x

Planifié

vidocq-runtime-metrics-extension

MP OpenAPI 4.x

Planifié

vidocq-runtime-openapi-extension

MP REST Client 4.x

Planifié

vidocq-runtime-rest-client-extension

MP JWT Auth 2.x

Planifié

vidocq-runtime-jwt-extension

MP Telemetry 2.x

Planifié

vidocq-runtime-telemetry-extension

MP Fault Tolerance 4.x

Planifié

vidocq-runtime-fault-tolerance-extension

Pour aller plus loin