Tiny JSON.
Serious contracts.
Jsonic++ is a tiny, embeddable JSON parser for C++. It pairs a deliberately small API with independent 810/810 conformance evidence, maintained lifetime testing, and parsing performance now in the same class as the conformant RapidJSON baseline on the project's same-host benchmark.
#include "json.h"
json::Document doc;
std::string error;
json::Document::parse(
text, doc, error
);
std::cout << doc["name"].string; The proposition
Small enough to vendor. Explicit enough to trust.
Parse strict JSON by default, opt into comments and trailing commas for configuration files, preserve significant numeric spellings when a plain double would lose them, inspect ordinary values, serialize again, and get structured source diagnostics when input is wrong. Jsonic++ deliberately stops before becoming a giant serialization ecosystem.
Conformance first · performance second
Fast because the hot path was measured, not because the contracts were weakened.
JSONTestSuite failures were fixed before performance work began. The retained optimization campaign then targeted bounded parser costs such as source-buffer copies, numeric conversion and ASCII/string scanning while keeping the external 810/810 gate green.
Compare the trade-offsThis is a benchmark result, not a claim that every workload or RapidJSON mode is identical. RapidJSON still exposes SAX, allocator, encoding and optional SIMD machinery that Jsonic++ intentionally does not.