- Merged PR #13: Refactor I/O exceptions, dropping XP 10 support in the doing. See xp-framework/core#363 for a write-up on the reason behind this and the plan to move forward. (@thekid)
- Fixed
ZStandardandBrotlioutput streams not closing underlying streams when destructor is invoked, causing xp-forge/frontend#52 (@thekid)
- Merged PR #11: Implement snappy compression in userland code. Snappy does not aim for maximum compression, favoring high speeds. (@thekid)
- Merged PR #8: Add ZStandard compression, based on the
zstdextension from https://github.com/kjdev/php-ext-zstd/ - see issue #7. (@thekid) - Heads up: Dropped support for PHP < 7.4, see xp-framework/rfc#343 (@thekid)
- Heads up: Algorithm implementations must change their
compressandcreatesignatures from$level= -1to$options= null, and can useOptions::from($options)->levelto access the given level in a backwards-compatible fashion. (@thekid) - Merged PR #12: Abstract algorithm options into an
Optionsclass (@thekid)
- Merged PR #9: Add
Algorithm::compress()andAlgorithm::decompress()(@thekid)
- Fixed Bzip2 availability check, the PHP extension is called
bz2. (@thekid)
- Added PHP 8.5 to the test matrix - @thekid
- Fixed calling
available()after close throwing an error - @thekid
- Added
brotliextension in test suite for Windows and Ubuntu, running the test suite for the newest PHP version with it. (@thekid) - Made
Algorithms::remove()accept names and tokens alongside Algorithm instances. (@thekid)
- Added
DeflatingOutputStreamandInflatingInputStreamimplementations to theio.streams.compresspackage (@thekid) - Made compatible with XP 12 - @thekid
- Merged PR #4: Add
Algorithms::accept()- @thekid
- Fixed E_WARNING: Undefined property: [...]::$name - @thekid
- Added PHP 8.4 to the test matrix - @thekid
- Fixed GZIP header reading - @thekid
- Merged PR #3: Migrate to new testing library - @thekid
This first release refactors the io.streams.compress.Algorithm interface
into an abstract base class, stabilizing the algorithm API.
- Made Algorithm implement the
lang.Valueinterface, adding a string representation showing algorithm details (@thekid) - Added
Algorithm::level()which will return the fastest, default and strongest levels supported for the predefinedCompression::DEFAULT,Compression::FASTESTandCompression::STRONGEST. (@thekid) - Changed
Algorithm::create()to accept either predefined constants for compression level or the level directly. (@thekid)
- Merged PR #2: Make Compression::named() raise exceptions for unsupported algorithms (@thekid)
- Added string representation for
Algorithminstances - @thekid
- Merged PR #1: Compression API - @thekid
- Throw exceptions when reading erroneous data (GZIP, BZ2) - @thekid
- Extracted library from XP Framework, see xp-framework/core#307 - @thekid