./textproc/nlohmann-json, JSON library for Modern C++

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.11.2, Package name: nlohmann-json-3.11.2, Maintainer: pkgsrc-users

JSON for Modern C++ is an open-source library consisting of a C++11-style
header-only JSON class.

Its stated goals are:
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.

Trivial integration. Our whole code consists of a single header file json.hpp.
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 code 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.


Master sites:

Filesize: 7907.884 KB

Version history: (Expand)


CVS history: (Expand)


   2023-11-21 18:37:53 by Nia Alarie | Files touched by this commit (3)
Log message:
nlohmann-json: Optionize tests to greatly cut down on build times.
   2022-12-28 21:18:21 by Nikita | Files touched by this commit (5)
Log message:
nlohmann-json: Import as textproc/nlohmann-json version 3.11.2

import from wip, packaged by K.I.A.Derouiche and Adam CiarciƄski.

JSON for Modern C++ is an open-source library consisting of a C++11-style
header-only JSON class.

Its stated goals are:
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.

Trivial integration. Our whole code consists of a single header file json.hpp.
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 code 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.