Version 1.0.0
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
andWRITE
constants on theigzip
module. These are
also present in Python's stdlibgzip
module and exposing them allows for
better drop-in capability ofigzip
. Thanks to @alexander-beedie in
#115. -
A
--no-name
flag has been added topython -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 ofOSError
.isal_zlib.IsalError
,
igzip_lib.IsalError
,isal_zlib.error
andigzip_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 allocatemaxsize
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.
- ISA-L library version variables are now available on windows as well,
-
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.