PHPackages                             mapsight/pulp-zip - 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. mapsight/pulp-zip

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

mapsight/pulp-zip
=================

ZIP helpers for Pulp packages.

v1.0.1(1mo ago)03MITPHPPHP ^8.2

Since Jun 18Pushed 1mo agoCompare

[ Source](https://github.com/open-mapsight/pulp-zip)[ Packagist](https://packagist.org/packages/mapsight/pulp-zip)[ Docs](https://github.com/open-mapsight/mapsight-pulp)[ RSS](/packages/mapsight-pulp-zip/feed)WikiDiscussions main Synced 2w ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

Pulp ZIP
========

[](#pulp-zip)

ZIP helpers for Pulp packages and scripts.

Features
--------

[](#features)

- **Unzip in pipelines:** Expand ZIP payloads from a Pulp `File` into regular Pulp files.
- **Zip in pipelines:** Collect regular Pulp files into one ZIP archive.
- **Temporary file handling:** Uses temporary files internally because PHP `ZipArchive` works with paths.

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

[](#installation)

```
composer require mapsight/pulp-zip
```

Requires PHP `ext-zip`.

Usage
-----

[](#usage)

Use `PulpZip::unzip()` after any source handler that emits ZIP bytes:

```
use OpenMapsight\Pulp;
use OpenMapsight\PulpZip;

Pulp::start()
    ->pipe(Pulp::srcHttp('GET', $url, [], 'data.zip'))
    ->pipe(PulpZip::unzip('.*\.csv'))
    ->pipe(Pulp::dest(__DIR__ . '/result'))
    ->run();
```

`unzip($patterns)` emits each matching archive entry as a normal Pulp `File`. Patterns use Pulp's regular-expression file matching, the same as `Pulp::fileSwitch()`.

Use `PulpZip::zip()` to collect incoming files into one archive:

```
Pulp::start()
    ->pipe(Pulp::src('.*\.json', __DIR__ . '/data'))
    ->pipe(PulpZip::zip('export.zip'))
    ->pipe(Pulp::dest(__DIR__ . '/result'))
    ->run();
```

Error Handling
--------------

[](#error-handling)

The handlers throw `RuntimeException` when:

- A temporary ZIP file cannot be created.
- The ZIP archive cannot be opened.
- A ZIP entry path is unsafe, for example an absolute path or a path containing `..`.
- A cache or temp file cannot be read or written by the caller.

Notes
-----

[](#notes)

- This package intentionally keeps the API small. It is not a full archive extraction library.
- For large ZIP files, prefer combining this package with `mapsight/pulp-cache` so downloads are cached before parsing.

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance92

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 66.7% 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 ~8 days

Total

2

Last Release

37d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/684458?v=4)[Paul Golmann](/maintainers/pjeweb)[@pjeweb](https://github.com/pjeweb)

---

Top Contributors

[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (2 commits)")[![pjeweb](https://avatars.githubusercontent.com/u/684458?v=4)](https://github.com/pjeweb "pjeweb (1 commits)")

---

Tags

zipmapsightpulp

### Embed Badge

![Health badge](/badges/mapsight-pulp-zip/health.svg)

```
[![Health](https://phpackages.com/badges/mapsight-pulp-zip/health.svg)](https://phpackages.com/packages/mapsight-pulp-zip)
```

###  Alternatives

[alchemy/zippy

Zippy, the archive manager companion

47623.6M53](/packages/alchemy-zippy)[pclzip/pclzip

A PHP library that offers compression and extraction functions for Zip formatted archives

19313.5M4](/packages/pclzip-pclzip)[spatie/laravel-personal-data-export

Create personal data downloads in a Laravel app

548594.0k9](/packages/spatie-laravel-personal-data-export)[ihor/nspl

Non-standard PHP library (NSPL) - functional primitives toolbox and more

380369.8k](/packages/ihor-nspl)[vipsoft/unzip

Unzip library - a ZipArchive wrapper

381.4M](/packages/vipsoft-unzip)[markrogoyski/itertools-php

Iteration tools for PHP

15112.9k](/packages/markrogoyski-itertools-php)

PHPackages © 2026

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