Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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+.
Expand Down