← Selected work
05 / JSON library

Amanuensis

Amanuensis JSON library logo

Amanuensis is a zero-dependency C++20 JSON library covering the complete set of JSON values needed by first-party tools. Its name means a faithful transcriber: structured content should move between forms without surprise or loss.

Technology
C++20 / Serialization
Status
In use
The challenge

Shared data is only useful when it stays trustworthy.

JSON is a contract between engine modules, editors, and generated tools. That contract must be strict enough to catch bad data while producing files that remain readable, stable in source control, and straightforward to debug.

The approach

Be strict when reading and stable when writing.

The library implements a focused value, reader, and writer API with strict parsing and detailed diagnostics. Objects preserve insertion order so generated output is predictable and diff-friendly, while application types opt into serialization explicitly.

Inside the project

What it does.

  1. 01

    Objects, arrays, strings, numbers, booleans, and null

  2. 02

    Insertion-order preservation and stable output

  3. 03

    Strict parsing with detailed diagnostics

  4. 04

    Opt-in serialization for application types

  5. 05

    Static-library consumption with no third-party runtime dependency

Design principles

How decisions
get made.

Faithful output

Stable ordering keeps generated documents readable and version-control diffs meaningful.

Strict at the boundary

Invalid input produces actionable diagnostics rather than permissive surprises.

One shared contract

Engine and tooling projects use the same small JSON model instead of carrying separate dependencies.

See the work

Amanuensis

View on GitHub
Next projectPenumbra