DAW JSON Link v3, a JSON serialization/deserialization library, is released

This page summarizes the projects mentioned and recommended in the original post on /r/cpp

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews

    So DAW JSON Link does have a DOM view, however it does not have a owning view. The json_value(even supports JSON Path in a limited form) type and json_raw mappings can help here. But there is no hard line between parsing view the json_value and the mappings to concrete data structures. One can mix and match.

  • json

    JSON for Modern C++

  • It's a header-only library, but it's not consisting of a single header file and also relies on some dependencies. This is not really an issue for me but some people might prefer things like nlohmann-json for this reason I guess.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • In this regard, I really like how daw_json_link works: it directly converts the JSON string into/from your custom C++ data type, without needing to have an intermediate DOM representation (but you can do so as well if you really want). The interface for defining the JSON serialization/deserialization for your data type is non-intrusive, which is another plus point. Due to lack of reflection in C++ it still requires some boilerplate, but personally I think it is better than other options I tried in terms of convenience. Furthermore, it is possible to reduce this amount of boilerplate into minimum with the aid of Boost.Describe.

  • RapidJSON

    A fast JSON parser/generator for C++ with both SAX/DOM style API

  • It seems not super widely used compared to other famous libraries like RapidJSON, nlohmann-json, or simdjson. But it seems the author is very active in developing this project which can mitigate this "lack of community" issue.

  • simdjson

    Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks

  • It seems not super widely used compared to other famous libraries like RapidJSON, nlohmann-json, or simdjson. But it seems the author is very active in developing this project which can mitigate this "lack of community" issue.

  • spdlog

    Fast C++ logging library.

  • Not sure what the above is but you should check out spdlog. It's pretty great to use.

  • cpr

    C++ Requests: Curl for People, a spiritual port of Python Requests.

  • I like https://github.com/nlohmann/json as a cpp json library. I combine it with https://github.com/libcpr/cpr for jsonrpc. Also, I agree spdlog is great.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • jsonrpc

    Generic JSON RPC server library (by beached)

  • But it's still being fleshed out JSON RPC

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts