On Mon, 21 Sep 2020 at 17:01, Niall Douglas via Boost
For me RapidJSON is a legacy design useful only for legacy codebases. sajson and simdjson are the current state of the art for new C++ code. If you don't mind modifying the JSON being parsed (i.e. it's a mutable buffer and you will throw away the JSON afterwards in any case), refactoring around sajson's in-JSON AST generation delivers very sizeable performance gains.
Both of these only work with a mutable contiguous buffer backing the data. The way I think of this is that those libraries convert JSON into a flat indexed JSON format which can just be mapped to memory and accessed as-is without any decoding. RapidJSON and this library are different in that they support arbitrary streams as input and decorrelate the serialized format from the in-memory representation.