| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2025-12-17 | 3.9 kB | |
| v6.3.0 source code.tar.gz | 2025-12-17 | 1.0 MB | |
| v6.3.0 source code.zip | 2025-12-17 | 1.2 MB | |
| Totals: 3 Items | 2.2 MB | 0 | |
Major Features
- RFC compliance for JSON Patch and JSON Merge Patch
- Big endian architecture support
std::chronoJSON support- Enhanced BEVE format streaming capabilities
Big Endian Support
Full support for big endian architectures with compile-time detection via std::endian::native. Includes byte-swapping implementations across all components, with CI testing through GCC cross-compilation and QEMU. (Closes [#1675])
- [#2141]
JSON Patch (RFC 6902)
Complete implementation of RFC 6902 JSON Patch for computing and applying document differences:
glz::diff()- Generate patches between documentsglz::patch()- Apply operations in-placeglz::patched()- Non-mutating patch applicationglz::patch_json()- Work directly with JSON strings- All six operations:
add,remove,replace,move,copy,test - Atomic transactions with automatic rollback on failure
- Option to create missing intermediate paths
- [#2131]
JSON Merge Patch (RFC 7386)
Full support for RFC 7386 JSON Merge Patch:
merge_patch()- Apply patches in-placemerge_patched()- Returns new patched valuemerge_diff()- Generate patches between documents- Correct handling of null-value removal, recursive merging, and array replacement
- [#2132]
std::chrono Support
Zero-allocation serialization for chrono types: (Closes [#1110])
std::chrono::duration- Serialized as numeric countstd::chrono::system_clock::time_point- ISO 8601 UTC formatstd::chrono::steady_clock::time_point- Numeric format- Epoch wrappers:
epoch_seconds,epoch_millis,epoch_micros,epoch_nanos - Precision-aware fractional seconds based on duration type
- Automatic timezone offset conversion to UTC
- [#2130]
BEVE Delimiter and Incremental Writing
New streaming capabilities for BEVE (Binary Efficient Value Encoding) similar to NDJSON for JSON:
write_beve_delimiter()- Outputs delimiter byte (0x06)write_beve_append()- Adds values without clearing bufferwrite_beve_append_with_delimiter()- Streaming-friendly writeswrite_beve_delimited()- Container serialization with delimitersread_beve_delimited()- Read delimiter-separated valuesread_beve_at()- Offset-based reading with automatic delimiter skipping
When converting delimited BEVE to JSON via beve_to_json, delimiters become newlines for NDJSON-compatible output.
- [#2142]
std::u8string and std::u8string_view Support
Native serialization support for UTF-8 string types.
- [#2127]
mimic Type in glz::meta
New mimic type alias to prevent double-quoting of custom types as map keys: (Closes [#1477])
:::cpp
template <>
struct glz::meta<my_key> {
using mimic = std::string;
static constexpr auto value = &my_key::value;
};
- [#2123]
Networking Improvements
- HTTP Server Keep Alive - Persistent connection support for HTTP servers [#2128]
- WebSocket internal() Methods - Access underlying implementation via
internal()andsocket()methods [#2140]
Performance Improvements
- Reduced template instantiations when various
glz::optsare used, decreasing compile times [#2138] - Pass end iterator by value for higher performance in parsing [#2133]
- Pass
std::string_viewby value throughout codebase [#2134] - Remove
reinterpret_castfrom atoi implementation [#2136]
Code Cleanup
- Removed legacy
hash_mapimplementation and cleaned up variant hashing [#2135]
Bug Fixes
- Fixed
glz::seekfor invalid paths to maps by usingfind[#2129]
Breaking Changes
- Error code renamed:
get_nonexistent_json_ptr→nonexistent_json_ptrfor consistency [#2131]
Full Changelog: https://github.com/stephenberry/glaze/compare/v6.2.0...v6.3.0