Frontmatter
| id | 9189 |
| title | Enhance Stream Proxy with DecompressionStream Support |
| state | Closed |
| labels | enhancementaiperformance |
| assignees | tobiu |
| createdAt | Feb 17, 2026, 1:40 AM |
| updatedAt | Feb 17, 2026, 1:52 AM |
| githubUrl | https://github.com/neomjs/neo/issues/9189 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 17, 2026, 1:52 AM |
Enhance Stream Proxy with DecompressionStream Support
tobiu assigned to @tobiu on Feb 17, 2026, 1:41 AM

tobiu
Feb 17, 2026, 1:52 AM
Input from Gemini 3 Pro:
✦ I have implemented
DecompressionStreamsupport inNeo.data.proxy.Stream.Features:
- Config:
compression: 'gzip' | 'deflate' | null.- Implementation: Transparently pipes the fetch stream through the browser's native
DecompressionStream.- Impact: Enables serving
.jsonl.gzfiles directly.
- Proof of Concept: Validated a ~60% size reduction (14MB -> 5.8MB) for the DevIndex dataset with full functionality.
This enhancement, combined with Progressive Chunk Sizing (#9187) and Abort support (#9188), positions the data layer to handle 100k+ record datasets efficiently.
tobiu closed this issue on Feb 17, 2026, 1:52 AM
This task enhances the
Neo.data.proxy.Streamto support client-side decompression of data streams using the browser'sDecompressionStreamAPI. This is a strategic enabler for scaling datasets (e.g., from 50k to 100k+ records) by significantly reducing network transfer size (estimated 70-80% reduction for JSONL).Objectives:
Proxy Enhancement (
src/data/proxy/Stream.mjs):compressionconfig ('gzip','deflate', ornull).new DecompressionStream(this.compression)before reading.Proof of Concept (Experiment):
users.jsonltousers.jsonl.gz.DevIndex.store.Contributorsto load the compressed file withcompression: 'gzip'.Cleanup:
Acceptance Criteria:
Stream.read()successfully decompresses a.gzfile when configured.DecompressionStreamis missing (optional but good).