cramjam

Your go-to for easy access to a plethora of compression algorithms, all neatly bundled in one simple installation.

MIT License

Stars
78
Committers
7
cramjam - v2.5.0

Published by milesgranger almost 3 years ago

What's Changed

Full Changelog: https://github.com/milesgranger/pyrus-cramjam/compare/v2.4.0...v2.5.0

cramjam - v2.4.0

Published by milesgranger about 3 years ago

This release comes with streaming compression support for all variants. And updates Gzip compression variant to support properly decoding input which has multiple streams, as is the default with std gzip lib. This release does not alter any of the existing APIs.

Notable commits:

Support compressed gzip multistream (#64) b9cfa13
Support Compressor for each variant (#64) 8ecb0fa
Support .flush for Compressor (#68) 4b92e42
Add official OSI name in the license metadata (#66) 446a671

cramjam - v2.4.0-rc2

Published by milesgranger about 3 years ago

Support .flush for Compressor (#68) 4b92e42

cramjam - v2.4.0-rc1

Published by milesgranger about 3 years ago

Release candidate for v2.4.0

Upgrade pyo3 to 0.14.1 (#62) c23621d
Add official OSI name in the license metadata (#66) 446a671
Support compressed gzip multistream b9cfa13
Support Compressor for each variant 8ecb0fa

cramjam - v2.3.2

Published by milesgranger over 3 years ago

Patch update includes fixes in benchmark tests and other CI improvements.
No changes to the core library in this release.

Use target alias with maturin-action (#58) 40fc8ab
Use latest maturin release (#59) 0f79b0a
Run benchmarks as unit tests on CI (#61) f9665a0
Bump version 2.3.1 -> 2.3.2 b43cc01

cramjam - v2.3.1

Published by milesgranger over 3 years ago

Allow use without numpy (#57) 4042d45

  • Conversion of input is evaluated in order of variants declared
    in BytesType. If numpy was not installed, it would ImportError numpy
    was not installed if the input was a Buffer b/c Buffer
    was evaluated after a potential numpy input. This patch release
    fixes this behavior by moving the numpy variant as the last variant evaluated.
    Thus wiill only raise an error if it's a numpy input/output and numpy is not
    installed. For users with numpy installed, this has no effect.
cramjam - v2.3.0.post3

Published by milesgranger over 3 years ago

Build ppc64 wheel #55 (@messense 🦸 )

cramjam - v2.3.0.post2

Published by milesgranger over 3 years ago

Make use of updated manylinux2014 ppc64le build from maturin-action (https://github.com/messense/maturin-action/releases/tag/v1.9.0)

cramjam - v2.3.0.post1

Published by milesgranger over 3 years ago

  • Add manylinux_2_24_ppc64le and manylinux2014_s390x wheel support (#54 thanks to @messense )
cramjam - v2.3.0

Published by milesgranger over 3 years ago

Use OsError when File::metadata fails (#50) cb0dd0e
Support lz4 block format (#53) 484cddd

cramjam - v2.2.0

Published by milesgranger over 3 years ago

  • Implement PyBufferProtocol for RustyBuffer (#48) f90565c
    • All de/compression variants return cramjam.Buffer.
    • Results in better performance by reducing allocations
    • Add __len__, __bool__, __repr__ for Buffer and File
    • Drops abi3 support due to use of PyBufferProtocol
cramjam - v2.1.0

Published by milesgranger over 3 years ago

Fix typo and add PyPI badge to README (#39) 6ec528c
Support snappy de/compress_raw_into (#40) 18f6918
Add version module attribute (#44) 37306e4
Rust file-like objects and accept bytes/bytearray/numpy (#45) 16b78f5

cramjam - v2.0.2

Published by milesgranger over 3 years ago

Fix bytearray decompression in snappy (#35) edb9241
Build abi3 wheels (#37) 935b858 (@messense 💯 )
Refactor implementation and optional mimalloc (#36) aa2259b

cramjam - v2.0.1

Published by milesgranger over 3 years ago

Fix all de/compress_into and more robust testing (#32) 892ed60

cramjam - v2.0.0

Published by milesgranger over 3 years ago

New commits

  • Reduce allocations & accept bytes and bytearray inputs (#22) a7c41df
  • Support PyPy builds - not Windows (#28) e94b30f
  • Support de/compress_into (#26) 67f368c

Notes

  • Variants are moved to their own modules. ie snappy_compress is now cramjam.snappy.compress
  • Accept both bytes and bytearray objects and returns the same.
  • Accept an optional output_len when the output of (de)compression is known; giving a 1-3x performance increase
    • While this is supported in snappy as well, when using bytearray as input, the output size is automatically calculated and the resulting buffer is resized after (de)compression.
  • New de/compress_into for all variants, except lz4
  • PyPy3.6 supported for OSX and Linux
  • Python 3.9 support
cramjam - v2.0.0-rc2

Published by milesgranger over 3 years ago

Reduce allocations & accept bytes and bytearray inputs (#22) a7c41df
Support PyPy builds - not Windows (#28) e94b30f
Support de/compress_into (#26) 67f368c

cramjam - v2.0.0-rc1

Published by milesgranger over 3 years ago

New commits

  • Reduce allocations & accept bytes and bytearray inputs (#22) a7c41df

Notes

  • Variants are moved to their own modules. ie snappy_compress is now cramjam.snappy.compress
  • Accept both bytes and bytearray objects and returns the same.
  • Accept an optional output_len when the output of (de)compression is known; giving a 1-3x performance increase
    • While this is supported in snappy as well, when using bytearray as input, the output size is automatically calculated and the resulting buffer is resized after (de)compression.
cramjam - v1.3.2

Published by milesgranger almost 4 years ago

Build abi3 wheels (#18) c7ec498 (@messense)
Bump minor version in Cargo.toml 0d3dc4b (@milesgranger)

cramjam - v1.3.1 - Add sdist to PyPi uploads & benchmarks

Published by milesgranger almost 4 years ago

  • Makefile: Add dev-install step 9d33503
  • Improve benchmarks 92e2814
  • Add zstd benchmarks (#13) 0c23972
  • Upload sdist to PyPi & use konstin2/maturin image in builds (#17) e002608
cramjam - Stable Rust & swap lz-fear from lz4 crate

Published by milesgranger over 4 years ago

  • Upgrade pyo3 to 0.11.0 and use stable Rust (#9)
  • Change Dockerfile to use stable channel (#10)
  • Switch from lz4 to lz-fear crate (#11)
  • Add benchmarks for gzip, snappy, lz4 and brotli (#11)