[Bug 1973357] New: Review Request: nlohmann-json - JSON for Modern C++

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=1973357

            Bug ID: 1973357
           Summary: Review Request: nlohmann-json - JSON for Modern C++
           Product: Fedora
           Version: rawhide
          Hardware: All
                OS: Linux
            Status: NEW
         Component: Package Review
          Severity: medium
          Assignee: nobody@xxxxxxxxxxxxxxxxx
          Reporter: orion@xxxxxxxx
        QA Contact: extras-qa@xxxxxxxxxxxxxxxxx
                CC: package-review@xxxxxxxxxxxxxxxxxxxxxxx
  Target Milestone: ---
    Classification: Fedora



Spec URL: https://www.cora.nwra.com/~orion/fedora/nlohmann-json.spec
SRPM URL:
https://www.cora.nwra.com/~orion/fedora/nlohmann-json-3.9.1-1.fc35.src.rpm

Description:
here 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.

* 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.

Fedora Account System Username: orion

Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=70310430


-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux