Skip to content

Latest commit

 

History

History
executable file
·
112 lines (80 loc) · 3.32 KB

File metadata and controls

executable file
·
112 lines (80 loc) · 3.32 KB

Compression streams ChangeLog

?.?.? / ????-??-??

2.1.0 / 2026-06-21

  • 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)

2.0.1 / 2025-08-16

  • Fixed ZStandard and Brotli output streams not closing underlying streams when destructor is invoked, causing xp-forge/frontend#52 (@thekid)

2.0.0 / 2025-08-15

  • 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 zstd extension 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 compress and create signatures from $level= -1 to $options= null, and can use Options::from($options)->level to access the given level in a backwards-compatible fashion. (@thekid)
  • Merged PR #12: Abstract algorithm options into an Options class (@thekid)

1.4.0 / 2025-07-31

  • Merged PR #9: Add Algorithm::compress() and Algorithm::decompress() (@thekid)

1.3.2 / 2025-07-31

  • Fixed Bzip2 availability check, the PHP extension is called bz2. (@thekid)

1.3.1 / 2025-06-22

  • Added PHP 8.5 to the test matrix - @thekid
  • Fixed calling available() after close throwing an error - @thekid

1.3.0 / 2025-04-20

  • Added brotli extension 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)

1.2.0 / 2024-03-24

  • Added DeflatingOutputStream and InflatingInputStream implementations to the io.streams.compress package (@thekid)
  • Made compatible with XP 12 - @thekid

1.1.0 / 2023-12-02

  • Merged PR #4: Add Algorithms::accept() - @thekid

1.0.2 / 2023-12-02

  • Fixed E_WARNING: Undefined property: [...]::$name - @thekid
  • Added PHP 8.4 to the test matrix - @thekid

1.0.1 / 2023-05-16

  • Fixed GZIP header reading - @thekid
  • Merged PR #3: Migrate to new testing library - @thekid

1.0.0 / 2022-02-26

This first release refactors the io.streams.compress.Algorithm interface into an abstract base class, stabilizing the algorithm API.

  • Made Algorithm implement the lang.Value interface, adding a string representation showing algorithm details (@thekid)
  • Added Algorithm::level() which will return the fastest, default and strongest levels supported for the predefined Compression::DEFAULT, Compression::FASTEST and Compression::STRONGEST. (@thekid)
  • Changed Algorithm::create() to accept either predefined constants for compression level or the level directly. (@thekid)

0.3.0 / 2022-02-25

  • Merged PR #2: Make Compression::named() raise exceptions for unsupported algorithms (@thekid)
  • Added string representation for Algorithm instances - @thekid

0.2.0 / 2022-02-20

  • Merged PR #1: Compression API - @thekid

0.1.0 / 2022-02-19

  • Throw exceptions when reading erroneous data (GZIP, BZ2) - @thekid
  • Extracted library from XP Framework, see xp-framework/core#307 - @thekid