PHPackages                             jdwx/stream - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. jdwx/stream

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

jdwx/stream
===========

A simple PHP module for handling arbitrarily large data streams

v1.0.4(5mo ago)03.5k3MITPHPPHP &gt;=8.3.0

Since Jun 7Pushed 5mo agoCompare

[ Source](https://github.com/jdwx/stream-php)[ Packagist](https://packagist.org/packages/jdwx/stream)[ RSS](/packages/jdwx-stream/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)Dependencies (5)Versions (6)Used By (3)

jdwx/stream-php
===============

[](#jdwxstream-php)

A simple PHP module for handling arbitrarily large data streams.

Installation
------------

[](#installation)

You can require it with Composer:

```
composer require jdwx/stream
```

Or download the source from GitHub:

Requirements
------------

[](#requirements)

This module requires PHP 8.3 or later. It has no other dependencies.

Usage
-----

[](#usage)

This module is designed to allow returning arbitrarily large amounts of data:

- without requiring the data to be held all in memory at the same time, and
- without requiring all the data to be available before the initial data is returned.

This is useful, for example, for extremely large web pages or for web pages that take a long time to load to allow returning progressive updates. In smaller projects, it can also make it easier to combine smaller elements into a single output and can make it easier to post-process output or insert things at various points.

Specifically, if you have a stream like (using array notation):

\[ 'Foo', $bar, 'Baz' \]

Where `$bar` is a Stringable object, the stream maintains `$bar` as an object reference. So if you then go to append `$qux` to the stream and determine that `$bar` needs to be modified, you can do that up until it has been consumed.

A smattering of tools for mocking and consuming such streams are also included, mostly for testing purposes.

Stability
---------

[](#stability)

This module has complete test coverage. It is relatively new but has been widely used internally with good results and is believed stable.

The interface should be relatively stable at this point.

History
-------

[](#history)

This module was refactored out of a prerelease version of jdwx/web to separate concerns in June 2025.

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance70

Regular maintenance activity

Popularity20

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~43 days

Total

5

Last Release

172d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f71b4b976170f89eac19be48c7381a27c49ed8c9cb5e8e6ff05a2ad7583efa13?d=identicon)[jdwx](/maintainers/jdwx)

---

Top Contributors

[![jdwx](https://avatars.githubusercontent.com/u/2722779?v=4)](https://github.com/jdwx "jdwx (1 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/jdwx-stream/health.svg)

```
[![Health](https://phpackages.com/badges/jdwx-stream/health.svg)](https://phpackages.com/packages/jdwx-stream)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
