NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #577 most downloaded on PyPI
Last release 5 days ago
29 Sep 2026
Release timing varies
gaps range from 1 weeks to 9 months
Nearly every release is documented
notes for 32 of 32 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
52 releases · first in 2020
One column per quarter.
ci: build wheels with cibuildwheel, including Pyodide by @ariostas in #249
Full Changelog: v2.12.1...v2.13.0
Don’t depend on deprecated pyo3/generate-import-lib feature by @musicinmybrain in #246
Full Changelog: v2.12.0...v2.12.1
Add 3.8 for 2.11.0 release & disable hypothesis derandomize by @milesgranger in #229
python-source to include type stubs by @ods in #231Full Changelog: v2.11.0...v2.12.0
Drop 3.8 support by @milesgranger in #230
python-source to include type stubs by @ods in #231Full Changelog: v2.11.0.post1...v2.12.0-rc1
Initial impl zero-copy Buffer by @milesgranger in #209
Full Changelog: 2.10.0...v2.11.0
Ban mutating immutable buffers on the free-threaded build by @ngoldbaum in #214
Full Changelog: v2.11.0-rc3...v2.11.0-rc4
Initial Type/JavaScript support by @milesgranger in #217
Full Changelog: v2.11.0-rc2...v2.11.0-rc3
Buffer: Fix extended and negative int reads by @milesgranger in #210
Full Changelog: v2.11.0-rc1...v2.11.0-rc2
Initial impl zero-copy Buffer by @milesgranger in #209
import cramjam
data = b"bytes"
buffer_view = cramjam.Buffer(data, copy=False)Full Changelog: 2.10.0...v2.11.0-rc1
Remove experimental codecs in default builds by @milesgranger in https://github.com/milesgranger/cramjam/pull/197
Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.9.1...2.10.0
Full Changelog: v2.9.1...2.10.0
Updates for Maturin 1.8: add a version key in the project metadata #64 by @agriyakhetarpal in #196
Full Changelog: v2.9.1...v2.10.0-rc1
Add Cargo.lock and bump patch version by @milesgranger in https://github.com/milesgranger/cramjam/pull/192
Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.9.0...v2.9.1
Bump libcramjam/isal-rs by @milesgranger in https://github.com/milesgranger/cramjam/pull/183
cramjam.zlib, cramjam.experimental.izlib, and cramjam.experimental.ideflate by @milesgranger in https://github.com/milesgranger/cramjam/pull/184Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.8.4...v2.9.0
Bump libcramjam/isal-rs by @milesgranger in https://github.com/milesgranger/cramjam/pull/183
Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.8.4...v2.9.0-rc1
Add cramjam.experimental.blosc2
cramjam.experimental.blosc2cramjam.experimental.igzip (on 64bit targets)Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.8.3...v2.8.4
Update upload/download-artifact actions by @milesgranger in https://github.com/milesgranger/cramjam/pull/170
cramjam.experimental.igzip by @milesgranger in https://github.com/milesgranger/cramjam/pull/182Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.8.4-rc3...v2.8.4-rc4
Update PyO3 0.20 -> 0.22 & Python 3.13 by @milesgranger in https://github.com/milesgranger/cramjam/pull/169
Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.8.4-rc2...v2.8.4-rc3
General improvements for packing and CI
General improvements for packing and CI
Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.8.3...v2.8.4-rc2
tl;dr: blosc2 is in experimental on all platforms: cramjam.experimental.blosc2 tracking issue for its stabilization: https://github.com/milesgranger/c
tl;dr: blosc2 is in experimental on all platforms: cramjam.experimental.blosc2
tracking issue for its stabilization: https://github.com/milesgranger/cramjam/issues/159
I'm sure there are (many) things to be fixed, and people wanting advanced / full feature sets of blosc2 should almost certainly just use the official blosc2 python package.
libcramjam (0.4.0) now has feature flags for each codec supported.
Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.8.3...v2.8.4-rc1
Add Windows PyPy by @milesgranger in https://github.com/milesgranger/cramjam/pull/145
experimental to xz submodule by @milesgranger in https://github.com/milesgranger/cramjam/pull/133Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.8.2...v2.8.3
Add Windows PyPy by @milesgranger in https://github.com/milesgranger/cramjam/pull/145
Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.8.2...2.8.3rc1
Remove zstd-safe dep in libcramjam by @milesgranger in https://github.com/milesgranger/cramjam/pull/132
Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.8.1...v2.8.2
Experimental support for LZMA / XZ codec by @milesgranger in https://github.com/milesgranger/cramjam/pull/127
Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.8.0...v2.8.1
Experimental support for LZMA / XZ codec by @milesgranger in https://github.com/milesgranger/cramjam/pull/127
Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.8.0...v2.8.1-dev1
Bump zstd from 1.5.0.2 to 1.5.4.0 in /cramjam-python by @dependabot in https://github.com/milesgranger/cramjam/pull/108
lz4.compress_block_bound by @ods in https://github.com/milesgranger/cramjam/pull/117Full Changelog: https://github.com/milesgranger/cramjam/compare/v2.7.0...v2.8.0
Add missing 3.11 Mac universal wheel by @milesgranger in https://github.com/milesgranger/pyrus-cramjam/pull/92
Full Changelog: https://github.com/milesgranger/pyrus-cramjam/compare/v2.6.2...v2.7.0
Refactor into workspaces: libcramjam, cramjam-python, and cramjam-cli by @milesgranger in https://github.com/milesgranger/pyrus-cramjam/pull/101
Full Changelog: https://github.com/milesgranger/pyrus-cramjam/compare/v2.7.0-rc2...v2.7.0-rc3
Accept anything with Buffer Protocol, remove numpy by @milesgranger in https://github.com/milesgranger/pyrus-cramjam/pull/100
Full Changelog: https://github.com/milesgranger/pyrus-cramjam/compare/v2.7.0-rc1...v2.7.0-rc2
Bump bzip2 from 0.4.3 to 0.4.4 by @dependabot in https://github.com/milesgranger/pyrus-cramjam/pull/94
Full Changelog: https://github.com/milesgranger/pyrus-cramjam/compare/v2.6.2.post1...v2.7.0-rc1
Update github actions by @messense in https://github.com/milesgranger/pyrus-cramjam/pull/88
Full Changelog: https://github.com/milesgranger/pyrus-cramjam/compare/v2.6.1...v2.6.2
Switch brotli2 -> brotli crate by @milesgranger in https://github.com/milesgranger/pyrus-cramjam/pull/87
Full Changelog: https://github.com/milesgranger/pyrus-cramjam/compare/v2.6.0...v2.6.1
Build wheels for PyPy 3.7 and 3.8 by @messense in https://github.com/milesgranger/pyrus-cramjam/pull/72
Full Changelog: https://github.com/milesgranger/pyrus-cramjam/compare/v2.5.0...v2.6.0
Incorporate property-based testing by @milesgranger in https://github.com/milesgranger/pyrus-cramjam/pull/69
Full Changelog: https://github.com/milesgranger/pyrus-cramjam/compare/v2.4.0...v2.5.0
This release comes with streaming compression support for all variants. And updates Gzip compression variant to support properly decoding input which
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.
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
Support .flush for Compressor (#68) 4b92e42
Support .flush for Compressor (#68) 4b92e42
Upgrade pyo3 to 0.14.1 (#62) c23621d Add official OSI name in the license metadata (#66) 446a671 Support compressed gzip multistream b9cfa13 Support C
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
Patch update includes fixes in benchmark tests and other CI improvements. No changes to the core library in this release.
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
Allow use without numpy (#57) 4042d45
Allow use without numpy (#57) 4042d45
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.Use OsError when File::metadata fails (#50) cb0dd0e Support lz4 block format (#53) 484cddd
Use OsError when File::metadata fails (#50) cb0dd0e Support lz4 block format (#53) 484cddd
Implement PyBufferProtocol for RustyBuffer (#48) f90565c
cramjam.Buffer.__len__, __bool__, __repr__ for Buffer and FilePyBufferProtocolFix typo and add PyPI badge to README (#39) 6ec528c Support snappy de/compress_raw_into (#40) 18f6918 Add __version__ module attribute (#44) 37306e4 R
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
Fix bytearray decompression in snappy (#35) edb9241 Build abi3 wheels (#37) 935b858 (@messense :100: ) Refactor implementation and optional mimalloc (
Fix bytearray decompression in snappy (#35) edb9241 Build abi3 wheels (#37) 935b858 (@messense :100: ) Refactor implementation and optional mimalloc (#36) aa2259b
Fix all de/compress_into and more robust testing (#32) 892ed60
Fix all de/compress_into and more robust testing (#32) 892ed60
Reduce allocations & accept bytes and bytearray inputs (#22) a7c41df
snappy_compress is now cramjam.snappy.compressbytes and bytearray objects and returns the same.output_len when the output of (de)compression is known; giving a 1-3x performance increase
bytearray as input, the output size is automatically calculated and the resulting buffer is resized after (de)compression.de/compress_into for all variants, except lz4Reduce allocations & accept bytes and bytearray inputs (#22) a7c41df Support PyPy builds - not Windows (#28) e94b30f Support de/compress_into (#26) 67
Reduce allocations & accept bytes and bytearray inputs (#22) a7c41df Support PyPy builds - not Windows (#28) e94b30f Support de/compress_into (#26) 67f368c
Reduce allocations & accept bytes and bytearray inputs (#22) a7c41df
snappy_compress is now cramjam.snappy.compressbytes and bytearray objects and returns the same.output_len when the output of (de)compression is known; giving a 1-3x performance increase
bytearray as input, the output size is automatically calculated and the resulting buffer is resized after (de)compression.Build abi3 wheels (#18) c7ec498 (@messense) Bump minor version in Cargo.toml 0d3dc4b (@milesgranger)
Build abi3 wheels (#18) c7ec498 (@messense) Bump minor version in Cargo.toml 0d3dc4b (@milesgranger)
Upgrade pyo3 to 0.11.0 and use stable Rust
Add appropriate python exceptions (#8) (cramjam.DecompressionError and cramjam.CompressionError)
cramjam.DecompressionError and cramjam.CompressionError)Snappy supports raw and framed API, dbc8248 supports the snappy_compress_raw(...) access to raw and snappy_compress(...) to the normal framed api.
Snappy supports raw and framed API, dbc8248
supports the snappy_compress_raw(...) access to raw and snappy_compress(...) to the normal framed api.
Documentation w/ python examples (#4)
Change the compilation of wheels for Linux using quay.io/pypa/manylinux1_x86_64 to avoid potential GLIBC linking errors.
No code changes from v1.0.0
Change the compilation of wheels for Linux using quay.io/pypa/manylinux1_x86_64 to avoid potential GLIBC linking errors. (#2)
First release that includes python bindings to the following rust implemented de/compression algorithms:
First release that includes python bindings to the following rust implemented de/compression algorithms:
Your coding agent can read these notes before it upgrades. Set up the MCP server →