Vidocq Runtime is the runtime MicroProfile that assembles the six foundational bricks of the ecosystem — Chappe (HTTP transport), Vauban (CDI), Champollion (JSON), Foy (Servlet), Cassini (REST), Mansart (persistence) — into a coherent runtime inspired by the Quarkus extension model, but with no ASM, no runtime reflection, and no Vert.x.

Origin of the name

Eugène-François Vidocq (1775-1857), an escaped convict turned founder and first head of France’s Sûreté nationale (Brigade de la Sûreté, 1812). A precursor of forensic science, he also founded the first private detective agency. See Wikipedia.

The metaphor faithfully reflects the role of the module. Vidocq fused heterogeneous informants into a modern police organisation. Vidocq Runtime fuses six disparate technical bricks — each named after another historical figure — into a coherent system. The umbrella project also lends its name to the entire ecosystem.

At a glance

MicroProfile specs

All eight shipped and TCK-green: https://microprofile.io/specifications/microprofile-config/, https://microprofile.io/specifications/microprofile-health/, https://microprofile.io/specifications/microprofile-metrics/, https://microprofile.io/specifications/microprofile-open-api/, https://microprofile.io/specifications/microprofile-rest-client/, https://microprofile.io/specifications/microprofile-jwt-auth/, https://microprofile.io/specifications/microprofile-telemetry/, https://microprofile.io/specifications/microprofile-fault-tolerance/

Repo

https://codefloe.com/Vidocq/vidocq

Java

25 (LTS)

Build

Maven 3.9.16

Java modules

io.vidocq.runtime.spi, io.vidocq.runtime.core, plus one io.vidocq.runtime.extensions.* module per extension (the Maven plugin is intentionally non-modular)

Runtime dependencies

Jakarta + MicroProfile specs only — no third-party framework

TCK

See detailed status — JAX-RS via Cassini, Servlet via Foy, all eight MicroProfile TCKs green on the assembled runtime (1837 tests)

Position in the ecosystem

Diagram

Differentiators

  • Java 25 + virtual threads — Executors.newVirtualThreadPerTaskExecutor() everywhere, no platform thread pools.

  • Strict Java Modules — every artefact is a named module, minimal exports, no hidden classpath.

  • Static codegen — Class-File API (JEP 484) + APT at compile time, no dynamic proxies, no ASM, no Byte Buddy.

  • Zero runtime reflection — anything that can be is resolved at build, AOT-ready (GraalVM, Leyden CDS).

  • Build-time first — like Quarkus, but on a CDI Lite + Class-File API standard JDK foundation.

  • Getting started — REST + DI + H2 persistence hello world

  • Usage — jlink/jpackage/Docker packaging, MicroProfile Config, Health, Metrics, OpenAPI

  • Concepts — extension, lifecycle hooks, priority, discovery

  • Internals — boot sequence, extension mechanism, threading

  • TCK status — the eight MicroProfile TCKs on the assembled runtime

  • Reference — configuration keys, Maven CLI, properties

  • Migration — from Quarkus, Helidon, Spring Boot, Open Liberty, Payara Micro

  • Reactor sub-modules