1
0
mirror of https://github.com/danog/byte-stream.git synced 2024-12-02 17:28:21 +01:00
byte-stream/docs/compression-streams.md

31 lines
962 B
Markdown
Raw Normal View History

2017-05-17 12:45:35 +02:00
# Compression Streams
2017-05-25 17:51:25 +02:00
This package implements compression and decompression streams based on Zlib. `ZlibOutputStream` can be used for compression, while `ZlibInputStream` can be used for decompression. Both can simply wrap an existing stream to apply them. Both accept an `$encoding` and `$options` parameter in their constructor.
## Examples
```php
$inputStream = new ResourceInputStream(STDIN);
$gzInputStream = new ZlibInputStream($inputStream, \ZLIB_ENCODING_GZIP);
while (null !== $chunk = yield $gzInputStream) {
print $chunk;
}
```
```php
$outputStream = new ResourceOutputStream(STDOUT);
$gzOutputStream = new ZlibOutputStream($outputStream, \ZLIB_ENCODING_GZIP);
for ($i = 0; $i < 100; $i++) {
yield $gzOutputStream->write(bin2hex(random_bytes(32));
}
yield $gzOutputStream->end();
```
## See also
* [`./examples/gzip-compress.php`](../examples/gzip-compress.php)
* [`./examples/gzip-decompress.php`](../examples/gzip-decompress.php)