Releases: Pico-Developer/pjson
Releases · Pico-Developer/pjson
Release list
pjson 1.0.0
pjson 1.0.0
pjson 1.0.0 is the first stable release of Praveen's JSON: a dependency-free
C++11 JSON library focused on a small, explicit API and robust handling of
untrusted input.
Highlights
- Strict RFC 8259 DOM and incremental SAX parsing from strings, byte spans,
and streams, with structured offset, line, and column diagnostics. - Compact and pretty serialization with direct stream output, ASCII escaping,
key-order control, and bounded output. - RFC 6901 JSON Pointer, atomic RFC 6902 JSON Patch, and atomic RFC 7396 Merge
Patch support. - A documented JSON Schema draft-07 subset with local references, object and
composition vocabularies, known string formats, collected errors, and
validation budgets. - Allocator-aware DOM ownership, non-vivifying lookup, strict typed access,
borrowed string views, and iterative deep-tree operations. - Relocatable CMake and pkg-config packages, plus Conan 2 and vcpkg recipes.
- Cross-platform CI for GCC, Clang, Apple Clang, and MSVC, with sanitizers,
CodeQL, conformance corpora, fuzzing, package-consumer tests, and benchmarks.
Important changes from 0.0.x
This release intentionally does not preserve the experimental 0.0.x API.
- Parsing is always RFC 8259-strict and rejects duplicate keys by default.
- JSON integers and non-integers use
int64_tanddouble. CreateFromString()was replaced by allocator-awareparse()APIs returning
pjson::unique_ptr.- Legacy coercive getters, mutable raw-container access, standalone
JSON/Base64 helpers, andint/floatconvenience overloads were removed. - Public type tags
jsonNumberFloatandjsonMapbecame
jsonNumberDoubleandjsonObject.
See the migration guides for
nlohmann/json
and
RapidJSON,
or start with the
tutorial series.
Reliability and security
- Parser, serializer, Patch, Merge Patch, and schema-validation resource limits
bound depth, memory amplification, output size, reference traversal, regular
expression work, and diagnostic growth. - Strict UTF-8 validation, safe duplicate-key defaults, regex safety checks,
atomic mutation behavior, and iterative local-reference resolution protect
untrusted-input paths. - The release candidate passes the complete registered test suite, Linux
ASan/UBSan/LSan, CodeQL, bounded libFuzzer corpus replay, JSONTestSuite, the
supported JSON Schema draft-07 corpus, and relocatable package consumers.
Installation
find_package(pjson 1.0 CONFIG REQUIRED)
target_link_libraries(your_target PRIVATE pjson::pjson)The library can also be consumed directly from pjsonlib/include/pjson.h and
pjsonlib/src/pjson.cpp. See the
building and installation guide
for CMake, pkg-config, Conan, vcpkg, and source-integration instructions.
Full changelog
See CHANGELOG.md
for the complete added, changed, fixed, security, and removed lists.
release-0.0.3
release-0.0.2
Minor release:
What's Changed
- Added ability to test for keys before extracting them, Added Generic Encoder/Decoder and Base64 Encoder/Decoder. by @ahzi22 in #1
New Contributors
Full Changelog: release-0.0.1...release-0.0.2
First tag version
Creating the very first tag for the initial version.