Vidocq Runtime is at 0.3.0. 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 Java Modules

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 BENCH.md runs land. See the workspace root BENCH.md for exact measurements.

From Quarkus

Vidocq Runtime explicitly borrows the Quarkus extension pattern.

Quarkus Vidocq Runtime Note

Quarkus deployment build steps + recorders (io.quarkus.deployment)

io.vidocq.runtime.spi.VidocqExtension lifecycle (configure / beforeStart / onStart / onStop)

Simpler model — ServiceLoader discovery, ordered by priority(), no build-step graph

Gizmo bytecode generation (ASM)

APT + Class-File API (JEP 484) at compile time

No ASM — standard JDK bytecode

ArC (runtime CDI)

Vauban

Build-time in both cases

RESTEasy Reactive

Cassini on Chappe

No Vert.x — virtual threads

Hibernate Reactive / ORM

Mansart

JDBC + virtual threads, no Vert.x SQL Client

Jackson

Champollion

JSON-B 3.0 / JSON-P 2.1 implementation

The forthcoming compare-to/ workspace examples will illustrate migrating a simple extension.

From Helidon MP

  • Helidon SE (Web) → Chappe + Cassini.

  • Helidon MP → Vidocq Runtime directly.

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

  • Helidon Níma already uses virtual threads — the transition is conceptually transparent.

From Spring Boot

Spring Boot does not naturally align with the MicroProfile model, and migration touches the programming model.

Spring Boot Vidocq Runtime Note

@SpringBootApplication

Vidocq.main(args) + any class

No application class required

@RestController

@Path + @GET/@POST

Standard Jakarta REST

@Service, @Component

@ApplicationScoped

CDI Lite

@Autowired

@Inject

Constructor injection preferred

@ConfigurationProperties

@ConfigProperty injection

MicroProfile Config via vidocq-runtime-ravel-config-extension

application.yml

vidocq.properties + MP profiles

%<profile>. prefix

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 → bin/run.sh from the vidocq:package bin/ + lib/ distribution (also attached as a -dist.zip).

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

  • Every enabled MicroProfile feature.xml is replaced by the matching Vidocq Runtime extension.

MicroProfile table

MicroProfile spec Vidocq Runtime status Extension

MP Config 3.1

Delivered

vidocq-runtime-ravel-config-extension

MP Health 4.0

Delivered

vidocq-runtime-knock-health-extension

MP Metrics 5.1

Delivered

vidocq-runtime-dirac-metrics-extension

MP OpenAPI 4.x

Delivered

vidocq-runtime-grimm-openapi-extension (+ vidocq-runtime-grimm-openapi-ui-extension)

MP REST Client 4.0

Delivered

vidocq-runtime-cyrano-rest-client-extension

MP JWT Auth 2.1

Delivered

vidocq-runtime-cervantes-jwt-extension

MP Telemetry 2.1

Delivered

vidocq-runtime-humboldt-telemetry-extension

MP Fault Tolerance 4.1

Delivered

vidocq-runtime-heisenberg-fault-tolerance-extension

All eight extensions are certified on the assembled runtime by the MicroProfile TCK runners embedded in vidocq-runtime-integration-tests (Maven profile tck) — 1837 TCK tests green. See TCK status.

Next steps