Cassini is the Jakarta REST 4.0 implementation of the Vidocq ecosystem. It runs on top of Chappe for HTTP transport, on Vauban for CDI resolution, and on Champollion for JSON serialization. Goal: 100 % TCK conformance on the Core Profile / SE-Bootstrap target, no ad-hoc reflection, no unjustified external dependency.
Origin of the name
Giovanni Domenico Cassini, known in French as Jean-Dominique Cassini (1625–1712), Italian-French astronomer, first director of the Paris Observatory (1671). He founded the dynasty that produced the first complete map of France via geodetic triangulation — every point of the kingdom anchored to a hierarchical mesh of triangles, then to roads, then to named places.
Reference: Cassini on Wikipedia.
Cassini, the astronomer |
Cassini, the runtime |
Geodetic triangulation |
URI templates |
Hierarchical mesh kingdom → province → town |
Root resource → sub-resource locator → method |
Reference meridian |
|
Single point per 3 angles |
Best-match: single method per (path, verb, media-type) |
The REST resource tree is a map. Cassini is the runtime that draws it and routes every request — over the signaling lines laid down by the optical telegraph of Chappe.
At a glance
Implemented spec |
|
Repo |
|
Java |
25 (LTS) |
JPMS modules |
|
Runtime dependencies |
Jakarta specs only ( |
TCK |
✅ 2535 / 2535 applicable (100 %) — details here. |
Position in the ecosystem
flowchart LR Client[HTTP client] -->|HTTP/1.1, H2, H3| Chappe[Chappe<br/>transport] Chappe -->|CassiniHttpExchange| Cassini[Cassini<br/>JAX-RS router] Cassini -->|@Inject| Vauban[Vauban<br/>CDI Lite] Cassini -->|JSON-B| Champollion[Champollion<br/>JSON-P / JSON-B] Cassini -->|dispatch| Resource[@Path UserResource] Resource --> Cassini Cassini -->|response| Chappe Chappe --> Client
Cassini shares Chappe with Foy (Servlet 6.1): a single process can expose a JAX-RS application and a Servlet deployment on the same listener.