On 21/09/2020 16:25, Mathias Gaunard via Boost wrote:
That is by design. Boost.JSON is not a serialization library. It addresses the use case for a JSON DOM with accompanying parser and serializer. This is not an insignificant use-case; witness the popularity of RapidJSON and nlohmann's JSON for Modern C++. In fact didn't you say you are already using RapidJSON?
I use RapidJSON because it's the established industry standard to do precisely what this library does.
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.
As I said I don't believe the value proposition of this library is sufficient to replace existing things when all it does is the same thing but with a Boost logo on it. There is no guarantee at this stage this library will get any traction or maintenance on the same level as one which is used by thousands of projects, so it's not worth the risk to me.
Boost has a long history of duplicating something already widely used in the C++ ecosystem, but "Boostified" so it has STL naming and design patterns. And that's fine by me. People who like a standard C++ API design over other considerations will choose the Boost duplicate. Niall