Skip to content

Releases: ifduyue/python-xxhash

v4.0.1

Choose a tag to compare

@github-actions github-actions released this 17 Aug 08:19
  • Clean up _parse_init_args keyword handling so the defensive check
    for a duplicate data keyword raises a proper error message
  • Add _xxhash module docstring

Full Changelog: v4.0.0...v4.0.1

v4.0.0

Choose a tag to compare

@github-actions github-actions released this 12 Aug 16:52
  • Breaking change: Drop support for Python 3.8, require Python >= 3.9
  • Breaking change: Remove deprecated xxhash.VERSION_TUPLE
  • Breaking change: The input keyword argument is renamed to data
    across constructors, update(), and one-shot functions
  • Breaking change: str input is no longer accepted and raises
    TypeError: Strings must be encoded before hashing; encode to
    bytes before 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
    autovectorizes XXH64_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-vectorize to 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

Choose a tag to compare

@ifduyue ifduyue released this 06 Jul 13:31
  • 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

Choose a tag to compare

@ifduyue ifduyue released this 06 Jul 13:31
  • 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

Choose a tag to compare

@ifduyue ifduyue released this 27 Jun 08:22
  • Speed up module-level one-shot digest(), intdigest(), and
    hexdigest() functions by switching them to METH_FASTCALL.
  • Keep one-shot argument handling consistent with hash constructors, including
    positional and keyword input/seed arguments, duplicate argument
    errors, and oversized seed wrapping.
  • Fix error handling in the xxh3_128 integer digest path so allocation
    failures are reported cleanly.
  • Fix Python 3.8 builds by adding a PyModule_AddType compatibility
    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

Choose a tag to compare

@ifduyue ifduyue released this 24 Jun 07:58
  • 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

Choose a tag to compare

@ifduyue ifduyue released this 25 Apr 14:13
  • 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

Choose a tag to compare

@ifduyue ifduyue released this 08 Oct 08:34
  • 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

v3.5.0

Choose a tag to compare

@ifduyue ifduyue released this 17 Aug 09:22
  • Build wheels for Python 3.13

Full list of changes: v3.4.1...v3.5.0

v3.4.1

Choose a tag to compare

@ifduyue ifduyue released this 05 Oct 09:56
  • Build wheels for Python 3.12
  • Remove setuptools_scm

Full list of changes: v3.3.0...v3.4.1