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 Getting started guide takes you from installing the CLI to a running REST service in minutes, and the first-app tutorial on the blog walks through the same journey in story form.

The ecosystem at a glance

Diagram

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:

  1. 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.

  2. Compile-time generation. No runtime reflection, no dynamic proxies, no ASM, no Byte Buddy. Anything computable at compile-time is computed at compile-time. At startup, we instantiate. AOT-compatible (GraalVM native-image, Project Leyden CDS).

  3. 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

Vidocq Runtime

MicroProfile application server, extension orchestrator

https://codeberg.org/Vidocq/vidocq

Vauban

CDI 4.1 Lite container, build-time, native Java Modules

https://codeberg.org/Vidocq/vauban

Cassini

Jakarta REST 4.0 / JAX-RS implementation

https://codeberg.org/Vidocq/cassini

Champollion

Jakarta JSON-P 2.1 + JSON-B 3.0 implementation

https://codeberg.org/Vidocq/champollion

Chappe

HTTP/1.1 + HTTP/2 server (HTTP/3 in progress), virtual threads, zero dependency

https://codeberg.org/Vidocq/chappe

Foy

Jakarta Servlet 6.1 implementation

https://codeberg.org/Vidocq/foy

Ravel

MicroProfile Config 3.1 implementation

https://codeberg.org/Vidocq/ravel

Knock

MicroProfile Health 4.0 implementation

https://codeberg.org/Vidocq/knock

Dirac

MicroProfile Metrics 5.1 implementation

https://codeberg.org/Vidocq/dirac

Heisenberg

MicroProfile Fault Tolerance 4.1 implementation

https://codeberg.org/Vidocq/heisenberg

Cervantes

MicroProfile JWT 2.1 implementation

https://codeberg.org/Vidocq/cervantes

Cyrano

MicroProfile Rest Client 4.0 implementation

https://codeberg.org/Vidocq/cyrano

Humboldt

MicroProfile Telemetry 2.1 implementation

https://codeberg.org/Vidocq/humboldt

Grimm

MicroProfile OpenAPI 4.1 implementation

https://codeberg.org/Vidocq/grimm

Mansart

Jakarta Data 1.0 + Jakarta Persistence 3.2 (M7 pending)

https://codeberg.org/Vidocq/mansart

Cross-cutting pages

  • 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 (M2x, M5, M6c, M7).

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 Codeberg.

What works today:

  • Chappe — HTTP/1.1, HTTP/2, virtual threads, RFC 9110/9112/9113 conformance.

  • Vauban — build-time CDI 4.1 Lite, Maven plugin, JUnit integration.

  • Cassini — REST 4.0, partial TCK pass (see cassini/cassini-migration.md).

  • Champollion — JSON-P 2.1 + JSON-B 3.0, APT generation, partial TCK suites (see champollion/JSON-ROADMAP.md).

  • Foy — Servlet 6.1, partial TCK pass.

  • Vidocq — initial orchestrator with Mansart H2 + transactions extensions.

  • MicroProfile — 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.

Work in progress:

  • Mansart — Jakarta Data 1.0 SPI, JPA 3.2 planned.

  • WebSocket — Chappe + Foy.

  • HTTP/3 / QUIC — Chappe.

  • MicroProfile — TCK hardening and cross-cutting integration in Vidocq Runtime.

Full per-module breakdown: Consolidated roadmap.