pjson 1.0 public release - #4
Merged
Merged
Conversation
Co-authored-by: TRAE CLI <traecli@bytedance.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added
version macros and
pjson::getVersion().streams, with structured line/column diagnostics, duplicate-key policies,
and configurable input, node, and nesting limits.
non-ASCII escaping, key-order selection, and output-size limits.
indexing, borrowed string views, type predicates, container queries, erase,
clear, swap, and deep structural equality.
RFC 7396 Merge Patch with structured errors and resource budgets.
composition vocabularies, known string formats, collected errors, exact
numeric comparisons, and configurable validation budgets.
provenance-preserving deletion.
pjson::pjsontarget,Conan 2 and vcpkg recipes, and consumer installation tests.
documentation, comparative benchmarks, cross-platform CI, sanitizer and
conformance testing, and four libFuzzer/OSS-Fuzz targets.
documentation, GitHub contribution templates, and REUSE licensing checks.
Changed
default; callers may explicitly keep the first or last duplicate.
int64_tanddoublerepresentations and APIs instead of
intandfloat.serialization uses conventional nested indentation instead of the previous
key-aligned format.
Merge Patch traversal now avoid recursive whole-tree walks.
top-level developer builds;
add_subdirectory()consumers receive just thelibrary unless they opt in.
in the library source.
Fixed
Unicode code points, and surrogate pairs so empty and escaped strings
round-trip.
invalid number, and out-of-range numeric input without exposing partial parse
results.
causing unbounded array growth.
mixed integer/double values exactly beyond the binary64 exact-integer range.
multipleOfprecision behavior, malformed keyword handling, format validation, and
speculative combinator error reporting.
and Patch/Merge Patch failures.
Security
work to limit depth, memory and output amplification, reference traversal,
regular-expression backtracking, and diagnostic growth for untrusted input.
validation and caching, constant-space speculative validation, and atomic
mutation behavior.
Removed
CreateFromString()parsing API in favor ofallocator-aware
parse()APIs returningpjson::unique_ptr.PJSONARRAY,PJSONMAP,getArray(),getMap(),getInt(),getFloat(),getBool(),getString(),at(),getIfExist(), andgetArrayValues().int,float, C-string-vector, and corresponding vector convenienceassignment/append overloads; use explicit
int64_t,double, and supportedvector types.
jsonNumberFloatandjsonMaptojsonNumberDoubleandjsonObject.