diff options
Diffstat (limited to 'libraries/nlohmann_json/README')
-rw-r--r-- | libraries/nlohmann_json/README | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/libraries/nlohmann_json/README b/libraries/nlohmann_json/README new file mode 100644 index 000000000000..7d8f084cf53f --- /dev/null +++ b/libraries/nlohmann_json/README @@ -0,0 +1,35 @@ +There are myriads of JSON libraries out there, and each may even have +its reason to exist. Our class had these design goals: + +Intuitive syntax. In languages such as Python, JSON feels like a first +class data type. We used all the operator magic of modern C++ to achieve +the same feeling in your code. Check out the examples below and you'll +know what I mean. + +Trivial integration. Our whole code consists of a single header file +json.hpp. That's it. No library, no subproject, no dependencies, no +complex build system. The class is written in vanilla C++11. All in all, +everything should require no adjustment of your compiler flags or +project settings. + +Serious testing. Our class is heavily unit-tested and covers 100% of the +code, including all exceptional behavior. Furthermore, we checked with +Valgrind and the Clang Sanitizers that there are no memory leaks. Google +OSS-Fuzz additionally runs fuzz tests against all parsers 24/7, +effectively executing billions of tests so far. To maintain high +quality, the project is following the Core Infrastructure Initiative +(CII) best practices. + +Other aspects were not so important to us: + +Memory efficiency. Each JSON object has an overhead of one pointer (the +maximal size of a union) and one enumeration element (1 byte). The +default generalization uses the following C++ data types: std::string +for strings, int64_t, uint64_t or double for numbers, std::map for +objects, std::vector for arrays, and bool for Booleans. However, you can +template the generalized class basic_json to your needs. + +Speed. There are certainly faster JSON libraries out there. However, if +your goal is to speed up your development by adding JSON support with a +single header, then this library is the way to go. If you know how to +use a std::vector or std::map, you are already set. |