Changelog¶
All notable changes to this project will be documented here. For a list of contributors, see the Contributors page.
The format is based on Keep a Changelog 1.1.0. This project has adhered to Semantic Versioning 2.0.0 since version 3.0.0.
5.0.1 - 2024-09-22¶
Fixed¶
Fix the issue that the package cannot be built from the source distribution (#90).
5.0.0 - 2024-09-18¶
Added¶
Add support for Python 3.13.
Improve the performance of the
hash()function with METH_FASTCALL, reducing the overhead of function calls. For data sizes between 1–2 KB (e.g., 48x48 favicons), performance is 10%–20% faster. For smaller data (~500 bytes, like 16x16 favicons), performance increases by approximately 30% (#87).Add
digestfunctions that support the new buffer protocol (PEP 688) as input (#75). These functions are implemented withMETH_FASTCALLtoo, offering improved performance (#84).Slightly improve the performance of the
hash_bytes()function (#88)Add Read the Docs documentation (#54).
Document benchmark results (#53).
Changed¶
Backward-incompatible: The
seedargument is now strictly validated to ensure it falls within the range [0, 0xFFFFFFFF]. AValueErroris raised if the seed is out of range (#84).Backward-incompatible: Change the constructors of hasher classes to accept a buffer as the first argument (#83).
The type of flag argumens has been changed from
booltoAny(#84).Change the format of CHANGELOG.md to conform to the Keep a Changelog standard (#63).
Deprecated¶
Deprecate the
hash_from_buffer()function. Usemmh3_32_sintdigest()ormmh3_32_uintdigest()as alternatives (#84).
Fixed¶
4.1.0 - 2024-01-09¶
Added¶
Add support for Python 3.12.
Fixed¶
4.0.1 - 2023-07-14¶
Changed¶
Refactor the project structure (#48).
Fixed¶
Fix incorrect type hints.
4.0.0 - 2023-05-22¶
Added¶
Add experimental support for
hashlib-compliant hasher classes (#39). Note that they are not yet fully tuned for performance.Add support for type hints (#44).
Add wheels for more platforms (
musllinux,s390x,win_arm64, andmacosx_universal2).Add a code of conduct (the ACM Code of Ethics and Professional Conduct).
Changed¶
Switch license from CC0 to MIT (#43).
Removed¶
Backward-incompatible: A hash function now returns the same value under big-endian platforms as that under little-endian ones (#47).
Backward-incompatible: Remove the
__version__constant from the module (#42). Useimportlib.metadatainstead.Drop support for Python 3.7, as it will reach the end of life on 2023-06-27.
3.1.0 - 2023-03-24¶
Added¶
Add support for 32-bit architectures such as
i686andarmv7l. From now on,hash()andhash_from_buffer()on these architectures will generate the same hash values as those on other environments (#40).In relation to the above,
manylinux2014_i686wheels are now available.Support for hashing huge data (>16GB) (#34).
Removed¶
Drop support for Python 3.6; remove legacy code for Python 2.x at the source code level.
3.0.0 - 2021-02-23¶
Added¶
Python wheels are now available, thanks to the power of cibuildwheel.
Supported platforms are
manylinux1_x86_64,manylinux2010_x86_64,manylinux2014_aarch64,win32,win_amd64,macosx_10_9_x86_64, andmacosx_11_0_arm64(Apple Silicon).
Add support for newer macOS environments (#22).
Add support for Python 3.7, 3.8, and 3.9.
Changed¶
Migrate CI from Travis CI and AppVeyor to GitHub Actions.
Removed¶
Drop support for Python 2.7, 3.3, 3.4, and 3.5.
2.5.1 - 2017-10-31¶
Fixed¶
Bugfix for
hash_bytes()(#15).
2.5 - 2017-10-28¶
Added¶
Add
hash_from_buffer()(#13).Add a keyword argument
signed.
2.4 - 2017-05-27¶
Added¶
Support seeds with 32-bit unsigned integers (#6).
Support 64-bit data (under 64-bit environments)
Add unit testing and continuous integration with Travis CI and AppVeyor.
Fixed¶
Fix compile errors for Python 3.6 under Windows systems.
2.3.2 - 2017-05-26¶
Changed¶
Relicensed from public domain to CC0-1.0.
2.3.1 - 2015-06-07¶
Fixed¶
Fix compile errors for gcc >=5.
2.3 - 2013-12-08¶
Added¶
Add
hash128(), which returns a 128-bit signed integer (#3).
Fixed¶
Fix a misplaced operator which could cause memory leak in a rare condition (#2).
Fix a malformed value to a Python/C API function which may cause runtime errors in recent Python 3.x versions.
2.2 - 2013-03-03¶
Added¶
Improve portability to support systems with old gcc (version < 4.4) such as CentOS/RHEL 5.x (#1).
2.1 - 2013-02-25¶
Added¶
Add
__version__constant. Check if it exists when the following revision matters for your application.
Changed¶
Incorporate the revision r147, which includes robustness improvement and minor tweaks.
Beware that due to this revision, the result of 32-bit version of 2.1 is NOT the same as that of 2.0. E.g.,:
>>> mmh3.hash("foo") # in mmh3 2.0
-292180858
>>> mmh3.hash("foo") # in mmh3 2.1
-156908512
The results of hash64 and hash_bytes remain unchanged. Austin Appleby, the author of Murmurhash, ensured this revision was the final modification to MurmurHash3’s results and any future changes would be to improve performance only.
2.0 - 2011-06-07¶
Added¶
Support both Python 2.7 and 3.x.
Changed¶
Change the module interface.
1.0 - 2011-04-27¶
Added¶
As Softpedia collected mmh3 1.0 on April 27, 2011, it must have been uploaded to PyPI on or slightly before this date.