Vidocq is a suite of Jakarta EE and MicroProfile runtimes written in pure Java 25, native Java Modules, built on static code generation (Class-File API + APT) and virtual threads.
|
New here? The Your first Vidocq application tutorial takes you from installing the CLI to a running REST service in minutes. Prefer the condensed version? See the runtime getting-started guide. |
The ecosystem at a glance
Each module is an independent project, released separately, with its own life-cycle. Vidocq Runtime assembles them through a Quarkus-inspired extension SPI.
Why a new runtime?
Three reasons:
-
Technical sovereignty. The Jakarta world rests largely on a handful of historical foundations (Tomcat, Jetty, Netty, Hibernate, Yasson, ArC, RESTEasy). Remarkable work, but accumulated dependencies. Vidocq bets on rebuilding everything on pure Java 25, leaning on what the JDK now offers: virtual threads, scoped values, Class-File API, strict Java Modules.
-
Compile-time generation. No runtime reflection, no dynamic proxies, no ASM, no Byte Buddy. Anything computable at
compile-timeis computed atcompile-time. At startup, we instantiate. AOT-compatible (GraalVMnative-image, Project Leyden CDS). -
Sober historical inspiration. Each component honours a French figure from the late 18th / early 19th century whose method captures the spirit of the module. An aesthetic stance, not a pastiche.
The components
| Component | Role | Repository |
|---|---|---|
MicroProfile application server, extension orchestrator |
||
CDI 4.1 Lite container, build-time, native Java Modules |
||
Jakarta REST 4.0 / JAX-RS implementation |
||
Jakarta JSON-P 2.1 + JSON-B 3.0 implementation |
||
HTTP/1.1 + HTTP/2 server (HTTP/3 in progress), virtual threads, zero dependency |
||
Jakarta Servlet 6.1 implementation |
||
Jakarta Data 1.0 + Jakarta Persistence 3.2 (JPA pending) |
||
Jakarta Validation 3.1 implementation (in development, not released yet) |
||
MicroProfile Config 3.1 implementation |
||
MicroProfile Health 4.0 implementation |
||
MicroProfile Metrics 5.1 implementation |
||
MicroProfile Fault Tolerance 4.1 implementation |
||
MicroProfile JWT 2.1 implementation |
||
MicroProfile Rest Client 4.0 implementation |
||
MicroProfile Telemetry 2.1 implementation |
||
MicroProfile OpenAPI 4.1 implementation |
Cross-cutting pages
-
What’s new — which components have something new on the development line, and where each one lists it.
-
Overall architecture — module boundaries, dependency matrix, cross-cutting choices (zero-dependency, Java Modules, codegen, virtual threads).
-
Comparison — Vidocq Runtime against Quarkus, Helidon SE 4 and Spring Boot 4.
-
Consolidated roadmap — module-by-module status and upcoming milestones.
Status
|
The suite is released as 0.2.x on Maven Central — an alpha: APIs may still change and production use is not recommended yet. Bug reports from early adopters are very welcome on Codefloe. |
The documentation you are reading is versioned: the default pages describe the
0.2.0 release, and the dev version of each component (version selector in
the sidebar) tracks the current 0.3.0-SNAPSHOT development line.
What works today:
-
Chappe — HTTP/1.1, HTTP/2, virtual threads, RFC 9110/9112/9113 conformance.
-
Vauban — build-time CDI 4.1 Lite, official CDI Lite TCK 774/774.
-
Cassini — Jakarta REST 4.0, official TCK at 2538 tests green.
-
Champollion — JSON-P 2.1 (178/179) + JSON-B 3.0 (289/295), APT generation.
-
Foy — Servlet 6.1, ~95 % of the official TCK
api.*packages (web fragments pending). -
Vidocq Runtime — orchestrator and CLI; the assembled runtime passes 1868 official MicroProfile 7.1 TCK tests across all eight component specs (Config, Health, Metrics, Fault Tolerance, JWT, Rest Client, Telemetry, OpenAPI), with Jakarta Core Profile 11 certification in preparation.
-
MicroProfile bricks — Config (Ravel), Health (Knock), Metrics (Dirac), Fault Tolerance (Heisenberg), JWT (Cervantes), Rest Client (Cyrano), Telemetry (Humboldt), OpenAPI (Grimm), each wired into Vidocq Runtime through an extension and covered by its own TCK page.
Work in progress:
-
Mansart — Jakarta Persistence 3.2 (Jakarta Data 1.0 already ships).
-
Erasmus — Jakarta Validation 3.1 (engine and built-in constraints working, first release upcoming).
-
WebSocket — Chappe + Foy.
-
HTTP/3 / QUIC — Chappe.
Full per-module breakdown: Consolidated roadmap.
Useful links
-
Tutorials: step-by-step guides
-
Quickstart: Getting started guide
-
Blog: vidocq.dev/blog
-
Repository: codefloe.com/Vidocq
-
GitHub mirror: github.com/vidocq-stack