Releases: ifduyue/python-xxhash
Releases · ifduyue/python-xxhash
Release list
v4.0.1
- Clean up
_parse_init_argskeyword handling so the defensive check
for a duplicatedatakeyword raises a proper error message - Add
_xxhashmodule docstring
Full Changelog: v4.0.0...v4.0.1
v4.0.0
- Breaking change: Drop support for Python 3.8, require Python >= 3.9
- Breaking change: Remove deprecated
xxhash.VERSION_TUPLE - Breaking change: The
inputkeyword argument is renamed todata
across constructors,update(), and one-shot functions - Breaking change:
strinput is no longer accepted and raises
TypeError: Strings must be encoded before hashing; encode to
bytesbefore hashing - Upgrade xxHash from v0.8.2 to v0.8.3. Note: on GCC/Clang source builds
that target AVX2 (e.g.-march=x86-64-v3), upstream v0.8.3
autovectorizesXXH64_update()and makes the xxh64 streaming path
about 2x slower. The shipped wheels are built for baseline x86-64 and
are unaffected. Source builds can work around it by adding
-fno-tree-vectorizeto the compiler flags. - Add per-object locking for thread safety, with sub-interpreter and
free-threaded (no-GIL) Python support - Speed up hash constructors by switching them to
tp_vectorcall. - Build pyodide wasm32 wheels
- Add s390x big-endian test job
- Add Python 3.15 classifier
- CI: shard the PyPI upload into parallel groups and create the GitHub
Release automatically
v3.8.1
- Register the "benchmark" pytest mark to avoid PytestUnknownMarkWarning
- Update C extension docstrings and remove stale comments
Full list of changes: v3.8.0...v3.8.1
v3.7.2
- Register the "benchmark" pytest mark to avoid PytestUnknownMarkWarning
- Update C extension docstrings and remove stale comments
Full list of changes: v3.7.1...v3.7.2
v3.8.0
- Speed up module-level one-shot
digest(),intdigest(), and
hexdigest()functions by switching them toMETH_FASTCALL. - Keep one-shot argument handling consistent with hash constructors, including
positional and keywordinput/seedarguments, duplicate argument
errors, and oversized seed wrapping. - Fix error handling in the
xxh3_128integer digest path so allocation
failures are reported cleanly. - Fix Python 3.8 builds by adding a
PyModule_AddTypecompatibility
fallback with correct reference counting. - Correct type stubs for
xxh64_digest(),xxh64_hexdigest(), and
xxh64_intdigest(), they were incorrectly aliased to xxh3_64 functions.
Full list of changes: v3.7.1...v3.8.0
v3.7.1
- Fix memory leak in copy() and new() when memory allocation fails (rare edge case)
- Fix seed/reset state initialization in xxh32 and xxh64 (unlikely to affect normal usage)
- Replace Py_BuildValue with PyLong_FromUnsignedLong/LongLong for performance
- Update README examples to use bytes literals
- Add CodSpeed performance benchmarks and CI workflow
- Build aarch64/armv7l on native Arm runners; test against Python 3.15.0-beta.2
Full list of changes: v3.7.0...v3.7.1
v3.7.0
- Drop support for Python 3.7
- Build armv7l manylinux/musllinux wheels
- Build riscv64 manylinux/musllinux wheels
- Build android and ios wheels
Full list of changes: v3.6.0...v3.7.0
v3.6.0
- Build wheels for Python 3.14
- Python free-threading support
- Typing: Use Buffer type stubs
- Deprecate xxhash.VERSION_TUPLE, it will be removed in the next major release
Full list of changes: v3.5.0...v3.6.0