This is a review from a library user standpoint. Thanks to Vinnie, Krystian, and the other contributors for their work.
Do you think the library should be accepted as a Boost library?
I recommend ACCEPTING this library into Boost.
- What is your evaluation of the design?
The design takes some time to get used to, but it fits well to the problem being tackled (a JSON-DOM library). Switching my codebases using RapidJSON to this library made the code more readable and it will also allow me to get rid of a significant amount of boilerplate.
- What is your evaluation of the implementation?
Looks solid. Boost-quality I find.
- What is your evaluation of the documentation?
Solid. A month ago I still had to read the source code to find some details, but now all I need for my use-cases is in the docs, well explained.
- What is your evaluation of the potential usefulness of the library?
Very useful; to me it takes the same place as Nlohmann.JSON and RapidJSON, both very popular and widely used libraries, but brings better performance and a better API. Regardless of the outcome of this review, I will use this library for my future JSON-DOM needs in C++.
- Did you try to use the library? With which compiler(s)?
All in standalone mode on Debian: GCC 9, 10 Clang 9, 10, 11 [trunk of 03 Jul 2020]
- How much effort did you put into your evaluation?
Converted two of my codebases (which have different use-cases for a JSON-DOM), read through the implementation, read the docs at multiple stages of its maturation over the last couple months. Amounts to about 40h.
- Are you knowledgeable about the problem domain?
I do not have much experience designing nor writing libraries, however I do use a significant number of them, both Boost and non-Boost. JSON is my primary format for configuration files and web communication; In the past I have used Nlohmann.JSON and then primarily RapidJSON for its speed, despite its (in my eyes) terribly user-unfriendly interface. I have also used JSON a lot in other languages (TypeScript, PureScript, Java). -- RJanson