PHPackages                             petrknap/xz-utils - 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. petrknap/xz-utils

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

petrknap/xz-utils
=================

XZ Utils (wrapper)

v1.1.0(1y ago)053LGPL-3.0-or-laterPHPPHP &gt;=8.1

Since Nov 3Pushed 1y ago1 watchersCompare

[ Source](https://github.com/petrknap/php-xz-utils)[ Packagist](https://packagist.org/packages/petrknap/xz-utils)[ Docs](https://github.com/petrknap/php-xz-utils)[ Fund](https://petrknap.github.io/donate.html)[ RSS](/packages/petrknap-xz-utils/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (6)Versions (4)Used By (0)

XZ Utils (wrapper)
==================

[](#xz-utils-wrapper)

User-friendly wrapper for [XZ Utils](https://github.com/tukaani-project/xz), providing simplified and streamlined access to powerful data compression and decompression tools. For ease of use, you can use the approach known from the [compression extensions](https://www.php.net/manual/en/refs.compression.php):

```
$encoded = xzencode(b'data') or throw new Exception();
$decoded = xzdecode($encoded) or throw new Exception();

printf('`%s` was decoded from encoded base64(`%s`)', $decoded, base64_encode($encoded));
```

Object-based approach
---------------------

[](#object-based-approach)

All functionality is available object-wise through the classes [`Lzma`](./src/Lzma.php) and [`Xz`](./src/Xz.php).

```
$xz = new PetrKnap\XzUtils\Xz();
$compressed = $xz->compress(b'data');
$decompressed = $xz->decompress($compressed);

printf('`%s` was decompressed from compressed base64(`%s`)', $decompressed, base64_encode($compressed));
```

### Filter-based approach

[](#filter-based-approach)

For more complex use cases, a filter-based approach is also possible.

```
use PetrKnap\ExternalFilter\Filter;
use PetrKnap\XzUtils\FilterFactory;

$file = fopen('README.md', 'r');
$xzFile = tmpfile();

# compress file to file
FilterFactory::xz()->compress()->filter(input: $file, output: $xzFile);

fclose($file);
rewind($xzFile);

# decompress file, filter headline and print it
print FilterFactory::xz()->decompress()->pipe(new Filter('head', ['-n', '1']))->filter($xzFile);

fclose($xzFile);
```

---

Run `composer require petrknap/xz-utils` to install it. You can [support this project via donation](https://petrknap.github.io/donate.html). The project is licensed under [the terms of the `LGPL-3.0-or-later`](./COPYING.LESSER).

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance39

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity49

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 ~3 days

Total

3

Last Release

546d ago

### Community

Maintainers

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

---

Top Contributors

[![petrknap](https://avatars.githubusercontent.com/u/8299754?v=4)](https://github.com/petrknap "petrknap (16 commits)")

---

Tags

compressiondecompressionlzmaphpphp-librarywrapperxzxz-utilscompressionwrapperdecompressionxzlzmaxz-utils

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/petrknap-xz-utils/health.svg)

```
[![Health](https://phpackages.com/badges/petrknap-xz-utils/health.svg)](https://phpackages.com/packages/petrknap-xz-utils)
```

###  Alternatives

[kriswallsmith/assetic

Asset Management for PHP

3.7k48.9M161](/packages/kriswallsmith-assetic)[simplesoftwareio/simple-qrcode

Simple QrCode is a QR code generator made for Laravel.

2.9k27.6M91](/packages/simplesoftwareio-simple-qrcode)[alchemy/zippy

Zippy, the archive manager companion

47522.6M51](/packages/alchemy-zippy)[composer/metadata-minifier

Small utility library that handles metadata minification and expansion.

181115.0M13](/packages/composer-metadata-minifier)[artisaninweb/laravel-soap

A SoapClient wrapper integration for Laravel

6314.5M12](/packages/artisaninweb-laravel-soap)[voku/html-min

HTML Compressor and Minifier

1804.7M39](/packages/voku-html-min)

PHPackages © 2026

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