Add ADR-012: JSON and JSON-Schema Support Libraries for C++#60
Conversation
pmaciel
left a comment
There was a problem hiding this comment.
Excellent study and conclusions. The core advantage is supporting JSON Schema, which will allow a much improved multi-package exchange of information.
I would not weigh the necessity of validating YAML as necessary because at this level the JSON information interchange is certinly adequate, and I see removing YAML at the low level of the stack a good direction (hence I would have finally chosen differently). But this requires a wider agreement and coordination that we're maybe to late to enforce.
The choice is a solid one -- thanks for the hard work!!
We are fully entrenched in YAML, there is so much YAML config. It would a large improvement if we would document the desired YAML structure. Right now we have to pry this knowledge from the code. |
|
The fact that valijsons adapter architecture allows replacing/adapting any parsing, schema and regex libraries, is a big plus. |
simondsmart
left a comment
There was a problem hiding this comment.
Looks well thought through. I would be happy to accept this.
would be
|
|
||
| ##### simdjson | ||
|
|
||
| Read-only support. Designed for high-speed parsing. When searching for JSON libraries for C++ *simdjson* will show up but it does not fit our use case. |
There was a problem hiding this comment.
Why does it not fit our use case?
There was a problem hiding this comment.
I believe we also want to be able to write json.
marcosbento
left a comment
There was a problem hiding this comment.
The proposed choice seems to be the most adequate for our purpose.
ecFlow already uses nlohman-json (with the headers embedded into the repo). Once this is accepted, we will gladly adopt it.
mcocdawc
left a comment
There was a problem hiding this comment.
Looks very good. My question is only about the proposed example usage.
ADR-009 was taken by the Repository Audit Store (merged via #68), so this ADR is renumbered to ADR-012. Resolve the ADR/README.md index conflict (keep 009-011, add ADR-012), rename ADR-009-JSON-Support.md -> ADR-012-JSON-Support.md, fix the index link (previously pointed at a non-existent ADR-009-JSON-Schema.md), and correct the title (number + 'Arcitectural' typo).
|
Rebased/merged
The technical content is unchanged. Two optional consistency notes for @Ozaq / reviewers (not changed here, to preserve the approved content):
|
… spelling Align with the ADR template and ADR-009/010/011: - add '## Status' (Accepted) and '## Last Updated' sections - rename '## Decisions' -> '## Decision' - British English in prose (analyses; serialise/deserialise); C++ code block left unchanged.
|
Follow-up: applied the two consistency fixes as well (commit |
|
Wooohoo :D Nice! Thanks for fixing my leftovers @tlmquintino |
Description
Contributor Declaration
By opening this pull request, I affirm the following: