Skip to content

Version 1.0.0

Compare
Choose a tag to compare
@rhpvorderman rhpvorderman released this 01 Aug 09:36
· 425 commits to develop since this release
a182513

Python-isal has been rewritten as a C-extension (first implementation was in
Cython). This has made the library faster in many key areas.

  • Since the module now mostly contains code copied from CPython and then
    modified to work with ISA-L the license has been changed to the
    Python Software Foundation License version 2.

  • Python versions lower than 3.7 are no longer supported. Python 3.6 is out
    of support since December 2021.

  • Stub files with type information have now been updated to correctly display
    positional-only arguments.

  • Expose READ and WRITE constants on the igzip module. These are
    also present in Python's stdlib gzip module and exposing them allows for
    better drop-in capability of igzip. Thanks to @alexander-beedie in
    #115.

  • A --no-name flag has been added to python -m isal.igzip.

  • Reduced wheel size by not including debug symbols in the binary. Thanks to
    @marcelm in #108.

  • Cython is no longer required as a build dependency.

  • isal_zlib.compressobj and isal_zlib.decompressobj are now about six times
    faster.

  • igzip.decompress has 30% less overhead when called.

  • Error structure has been simplified. There is only IsalError which has
    Exception as baseclass instead of OSError. isal_zlib.IsalError,
    igzip_lib.IsalError, isal_zlib.error and igzip_lib.error are
    all aliases of the same error class.

  • GzipReader now uses larger input and output buffers (128k) by default and
    IgzipDecompressor.decompress has been updated to allocate maxsize buffers
    when these are of reasonable size, instead of growing the buffer to maxsize
    on every call. This has improved gzip decompression speeds by 7%.

  • Patch statically linked included library (ISA-L 2.30.0) to fix the following:

    • ISA-L library version variables are now available on windows as well,
      for the statically linked version available on PyPI.
    • Wheels are now always build with nasm for the x86 architecture.
      Previously yasm was used for Linux and MacOS due to build issues.
    • Fixed a bug upstream in ISA-L were zlib headers would be created with an
      incorrect wbits value.
  • Python-isal shows up in Python profiler reports.

  • Support and tests for Python 3.10 were added.

  • Due to a change in the deployment process wheels should work for older
    versions of pip.

  • Added a crc property to the IgzipDecompressor class. Depending on the
    decompression flag chosen, this will update with an adler32 or crc32
    checksum.

  • All the decompression NO_HDR flags on igzip_lib were
    incorrectly documented. This is now fixed.