Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Zip Streamed Response Bundle Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • "Download all" / bulk export features. The core capability — assembling a ZIP and streaming it to the client as it is generated — is the enabling primitive behind a recurring, high-demand product ask: one-click download of a user's files, invoices, reports, media assets, or account data. This package is a reference implementation of that pattern, not a dependency to ship.
  • GDPR / data-portability and account-closure exports. Streaming avoids staging personal data in a temp directory, which shortens the data-retention surface and simplifies the privacy review. That is a product-and-compliance decision, not just an engineering one.
  • Whether to cap export size. Disk-staged archives force a product constraint ("max 500 MB," "max 100 files") and generate support tickets when users hit it. Streaming removes the storage ceiling, so the roadmap item can ship without an arbitrary limit — a smaller spec, fewer edge cases.
  • Build vs. buy. The decision is really three-way: adopt this bundle (no), adopt a maintained ZIP-streaming library and wire it in (yes, ~1–3 days), or hand-roll zip writing (no — the format details aren't worth owning). This package is useful mainly as evidence that the pattern is small enough to build.
  • Infra/cost decisions. Streaming shifts work from disk and cron cleanup jobs to request-time CPU. That trade is favorable for occasional large exports and unfavorable for very high-throughput batch generation, which affects whether the feature is synchronous or queued.
  • Prioritization signal. Stars (11), dependents (0), and a last release of 2016 tell you no one is validating this package. It should not appear on a roadmap as "integrate X"; it should appear as "add bulk download," with the library choice delegated to engineering.

When to Consider This Package

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.

How to Pitch It (Stakeholders)

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings