From 855c73647e68a40a7111b33d3846d6e5e3855a12 Mon Sep 17 00:00:00 2001 From: Lorenzo Dessimoni Date: Wed, 17 Dec 2025 18:11:12 +0100 Subject: [PATCH] Add changelog --- CHANGELOG.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 673d119..91d7a22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,28 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.1.0] - 2025-12-17 + +### Added + +- **Complex Pattern Streaming**: Extended JSONPath streaming capability to handle sophisticated patterns without buffering entire arrays in memory + - Property extraction after wildcards: `$.users[*].name` streams individual property values + - Array index with property access: `$.items[0].name` extracts nested properties with streaming + - Filter expressions with property extraction: `$.items[?price > 100].name` leverages streaming when possible +- **PathEvaluator Enhancements**: Added `shouldExtractFromValue()` and `walkValue()` methods for partial path matching and nested value extraction +- **Sequential Result Indexing**: All streamed results maintain correct key ordering across operations + +### Changed + +- **PathExpression**: Updated `canUseSimpleStreaming()` to recognize complex streamable patterns +- **Parser**: Enhanced parsing to support complex pattern detection and evaluation + +### Performance + +- **Memory**: Complex JSONPath patterns now use constant memory instead of buffering entire arrays +- **Scalability**: Can process very large JSON arrays with complex patterns efficiently +- **Compatibility**: Maintains performance parity with buffered approach while reducing memory footprint + ## [1.0.0] - 2025-12-05 Initial release of JsonStream PHP - a high-performance streaming JSON parser for PHP 8.1+.