Champollion is the Jakarta JSON Processing 2.1 + JSON Binding 3.0 implementation of the Vidocq ecosystem. Zero dependency outside specs, strict JPMS, 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.

See lien:https://en.wikipedia.org/wiki/Jean-Fran%C3%A7ois_Champollion[Wikipedia — Jean-François Champollion].

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://codeberg.org/Vidocq/champollion

Java

25 (LTS)

JPMS 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

178 / 179 PASS (99.4%) — details here

TCK JSON-B 3.0

Baseline run in progress — see detailed status

Performance

On par with Yasson, ~2.5× slower than Parsson on streaming, ~3-4× slower than Jackson on binding (production-ready band) — see lien:https://codeberg.org/Vidocq/champollion/src/branch/main/BENCH.md[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 startedJson.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, JPMS

  • Migration — from Parsson, Yasson or Jackson