|
Vidocq Runtime is at 0.1.0-SNAPSHOT. Any real-world migration is premature — this page documents the mappings ahead of time. |
Side-by-side comparison
| Aspect | Vidocq Runtime | Quarkus | Helidon MP | Spring Boot | Open Liberty | Payara Micro |
|---|---|---|---|---|---|---|
Minimum JDK |
25 |
17 |
21 |
17 |
17 |
17 |
I/O threading model |
Virtual threads |
Vert.x event loop |
Helidon Níma (VT) |
Tomcat / Netty |
Platform threads |
Platform threads |
Build-time vs runtime |
Build-time (Class-File API) |
Build-time (Gizmo / ASM) |
Runtime |
Runtime |
Runtime |
Runtime |
Strict JPMS |
Yes |
No |
No |
No |
No |
No |
Native AOT |
GraalVM + Leyden CDS |
GraalVM |
GraalVM |
GraalVM |
Partial |
Partial |
Typical cold start (jlink/CDS) |
~1 s |
~0.5 s (native) |
~1 s |
~3 s |
~5 s |
~3 s |
Standalone image size |
~40 MB (jlink) |
~80 MB (native) |
~50 MB |
~70 MB |
~150 MB |
~80 MB |
ASM / Byte Buddy dependency |
None |
ASM (Gizmo) |
ASM |
ByteBuddy + ASM |
ASM |
ASM |
|
The numbers above are indicative and will be updated as |
From Quarkus
Vidocq Runtime explicitly borrows the Quarkus extension pattern.
| Quarkus | Vidocq Runtime | Note |
|---|---|---|
|
|
API directly transposable |
Gizmo recorder (ASM) |
Class-File API recorder (JEP 484) |
No ASM — standard JDK bytecode |
ArC (runtime CDI) |
Build-time in both cases |
|
RESTEasy Reactive |
No Vert.x — virtual threads |
|
Hibernate Reactive / ORM |
JDBC + virtual threads, no Vert.x SQL Client |
|
Jackson |
JSON-B 3.0 / JSON-P 2.1 implementation |
The forthcoming compare-to/ workspace examples will illustrate migrating a simple extension.
From Spring Boot
Spring Boot does not naturally align with the MicroProfile model, and migration touches the programming model.
| Spring Boot | Vidocq Runtime | Note |
|---|---|---|
|
|
No application class required |
|
|
Standard Jakarta REST |
|
|
CDI Lite |
|
|
Constructor injection preferred |
|
|
MicroProfile Config |
|
|
|
Spring Data JPA |
Mansart (Jakarta Data 1.0) |
APT-generated repositories |
From Open Liberty / WildFly
-
server.xml→ MicroProfile Config + Vidocq Runtime extensions. -
EAR → standalone JAR + Maven plugin.
-
JNDI → CDI lookup via
Vauban.bootstrap(). -
Jakarta annotations — directly compatible, the programming model stays identical.
From Payara Micro
Payara Micro and Vidocq Runtime share the MicroProfile target. The main difference is the build-time approach: Payara Micro embeds GlassFish; Vidocq Runtime produces a minimal jlink binary without a classical application server.
-
payara-micro --deploy app.war→java -jar app-runner.jar. -
payara-micro.jar(~80 MB) → jlink image (~40 MB). -
Every enabled MicroProfile
feature.xmlis replaced by the matching Vidocq Runtime extension.
MicroProfile table
| MicroProfile spec | Vidocq Runtime status | Extension |
|---|---|---|
MP Config 3.x |
Planned |
|
MP Health 4.x |
Planned |
|
MP Metrics 5.x |
Planned |
|
MP OpenAPI 4.x |
Planned |
|
MP REST Client 4.x |
Planned |
|
MP JWT Auth 2.x |
Planned |
|
MP Telemetry 2.x |
Planned |
|
MP Fault Tolerance 4.x |
Planned |
|
Next steps
-
Concepts — fundamental differences from Quarkus
-
TCK status — conformance coverage