wamania/zip-streamed-response-bundle
A Symfony bundle that streams ZIP archives directly to the HTTP response, so you can build and download archives on the fly without temporary files on disk. Useful for large or dynamically generated downloads.
Adoption criteria — and how this package scores:
| Criterion | Requirement | This package |
|---|---|---|
| Maintenance | Releases or commits in the last 24 months | Fails — last release 2016-10-17 |
| Framework fit | Matches our stack | Fails for Laravel — it is a Symfony bundle (HttpFoundation StreamedResponse + DI config), not a Laravel package |
| Runtime support | PHP 8.x, current framework LTS | Fails — PHP 5/7-era code |
| Adoption evidence | Non-trivial dependents, issue activity | Fails — 0 dependents, 11 stars |
| Security path | Someone to triage/patch CVEs | None — no upstream to notify |
| License | Permissive | Presumed MIT, but irrelevant given the above |
Consider it only when: you are maintaining a legacy Symfony 2/3 application already on this bundle and are deciding whether to remove it, or you want to read ~100 lines of code to see how a StreamedResponse callback is wired to a zip writer before implementing it yourself.
Look elsewhere when: you are on Laravel (use the framework's response()->streamDownload() with a maintained zip-streaming library), need PHP 8.x, need to stream from S3 or another remote source, need ZIP64 / multi-gigabyte archives, or need to run under Octane/Swoole where output-buffering assumptions differ. In practice, this means: look elsewhere almost always, and treat the package as documentation.
To executives: Customers keep asking to download everything at once, and today we either don't support it or cap it and eat support tickets. The technical answer is to stream the ZIP as we build it — no temp files, no storage bill, no size cap. There's an old open-source package that does this, but it's effectively abandoned (11 stars, no release since 2016, zero dependent projects), so we should not put it in production. The good news is the capability itself is small: roughly one to three engineer-days on top of a maintained library, and it unblocks a repeated request across several parts of the product.
To engineering: Treat wamania/zip-streamed-response-bundle as a design reference, not a dependency. It's a Symfony bundle from the PHP 5/7 era with no maintenance path, so it's disqualified on runtime support and security triage before we even discuss features. The pattern it demonstrates is worth keeping: generate the archive inside a streamed response callback so nothing touches disk. Implement that on a maintained, framework-agnostic zip-streaming library, wire it to the framework's native streamed-download response, and be explicit about backpressure, memory ceiling, timeouts, and behavior under long-running workers. Add a test that generates a large archive and asserts flat memory — that test is the actual deliverable, because it's what protects the feature from quietly regressing into a disk-staged implementation later.
How can I help you explore Laravel packages today?