Champollion is the Jakarta JSON Processing 2.1 + JSON Binding 3.0 implementation of the Vidocq ecosystem. Zero dependency outside specs, strict Java Modules, virtual threads, and JSON-B bindings emitted at compile time by an APT — no runtime reflection, AOT-friendly (GraalVM, Leyden CDS).

Origin of the name

Jean-François Champollion (1790-1832) is the French Egyptologist who deciphered Egyptian hieroglyphs in 1822 thanks to the Rosetta Stone. He moved an opaque symbol system to a rigorous grammatical reading by combining phonetic signs and ideograms.

The metaphor is direct: decoding arbitrary JSON and translating it into typed Java objects is exactly deciphering a sequence of symbols to make it intelligible. Champollion (the module) reads JSON structures, just as Champollion (the man) read royal cartouches.

At a glance

Implemented specs

Jakarta JSON Processing 2.1 + Jakarta JSON Binding 3.0

Repo

https://codefloe.com/Vidocq/champollion

Java

25 (LTS)

Java modules

io.vidocq.champollion.api, io.vidocq.champollion.jsonp, io.vidocq.champollion.jsonb, io.vidocq.champollion.codegen.apt

Runtime dependencies

None outside Jakarta specs — no transitive baggage

TCK JSON-P 2.1

179 / 179 PASS (100%), pluggability suite 18/18 — run of 2026-06-16, details here

TCK JSON-B 3.0

290 / 295 PASS, 0 FAIL (the 5 SKIP are disabled upstream inside the TCK itself) — run of 2026-06-16, see detailed status

Performance

JSON-P streaming beats Parsson on MEDIUM (1.17×) and LARGE (1.08×) payloads (SMALL at 0.66×, per-parse fixed costs); JSON-B reads ~40% faster than Yasson on MEDIUM, writes ~Yasson-level and ~3-4× slower than Jackson (P13 run, 2026-06-12) — see BENCH.md

Position in the ecosystem

Diagram

Champollion is a leaf module on the JSON side. It depends on nothing in the Vidocq ecosystem; conversely, Cassini (REST) consumes it as the default JSON entity provider, and Foy may use it for JSON streaming servlets.

  • Getting started — Json.createReader, JsonbBuilder.create()

  • Usage — streaming, object model, Patch / Pointer, JsonbConfig, adapters

  • Concepts — JSON-P and JSON-B vocabulary

  • Internals — APT codegen, Class-File API, parser pipeline

  • TCK status — official JSON-P 2.1 + JSON-B 3.0 coverage

  • Reference — public API, annotations, Java Modules

  • Migration — from Parsson, Yasson or Jackson