RapidFuzz is a fast string matching library for Python and C++, which is using
the string similarity calculations from FuzzyWuzzy.
Provides
Requires
License
MIT
Changelog
* Tue Jan 27 2026 Dirk Müller <dmueller@suse.com>
- update to 3.14.3:
* add missing pypy and freethreaded linux wheels
* drop s390x and ppc64le wheels since they are virtually unused
and require extremly long to build under emulation
* upgrade to Cython==3.1.6
* enable free threading
* Fully disable line tracing in release builds
* upgrade to rapidfuzz-cpp==3.3.3
* add support for freethreaded Python
* add python 3.14 wheels
* dropped support for Python3.9
* drop 32 bit linux wheels
* remove unused hook-dirs from pyinstaller config to fix a
warning
* fixed WRatio for a length ratio of exactly 8.0
* Tue Jul 15 2025 Steve Kowalik <steven.kowalik@suse.com>
- Update to 3.13.0:
* add support for arrays of type 'w'
* add support for any DTypeLike as dtype in ``cdist`` and ``cpdist``
* upgrade to ``Cython==3.0.12``
* generate code for fallback imports to be better parseable for tools
bundling Python applications into a single binary
* added support for taskflow 3.9.0
* improve calculation of min score inside partial_ratio so it can skip
more alignments
* fix compilation on clang-19
* fix incorrect results in simd optimized implementation of Levenshtein
and OSA on 32bit targets
* drop support for Python 3.8
* switch build system to ``scikit-build-core``
* Sun Aug 18 2024 Dirk Müller <dmueller@suse.com>
- update to 3.9.6:
* upgrade to Cython==3.0.11
* add python 3.13 wheels
* include simd binaries in pyinstaller builds
* fix builds with setuptools 72 by upgrading scikit-build
* Sat Jul 06 2024 Dirk Müller <dmueller@suse.com>
- update to 3.9.4:
* fix bug in Levenshtein.editops and Levenshtein.opcodes which
could lead to incorrect results and crashes for some inputs
* fix None handling for queries in process.cdist for scorers
not supporting SIMD
* fix supported versions of taskflow in cmake to be in the
range v3.3 - v3.7
* disable AVX2 on MacOS since it did lead to illegal
instructions being generated
* significantly improve type hints for the library
* fix cmake version parsing
* use the correct version of rapidfuzz-cpp when building
against a system installed version
* added process.cpdist which allows pairwise comparison of two
collection of inputs
* fix some minor errors in the type hints
* fix potentially incorrect results of JaroWinkler when using
high prefix weights
* Sat Apr 06 2024 Dirk Müller <dmueller@suse.com>
- update to 3.7.0:
* reduce importtime
* Wed Mar 13 2024 Dirk Müller <dmueller@suse.com>
- update to 3.6.2:
* upgrade rapidfuzz-cpp which includes a fix for build issues
on some compilers
* fix some issues with the sphinx config
* Sun Jan 21 2024 Dirk Müller <dmueller@suse.com>
- update to 3.6.1:
* fix overflow error on systems with ``sizeof(size_t) < 8``
* fix pure python fallback implementation of ``fuzz.token_set_ratio``
* properly link with ``-latomic`` if ``std::atomic<uint64_t>``
is not natively supported
* add banded implementation of LCS / Indel. This improves the
runtime from ``O((|s1|/64) * |s2|)`` to
``O((score_cutoff/64) * |s2|)``
* upgrade to ``Cython==3.0.7``
* cdist for many metrics now returns a matrix of ``uint32``
instead of ``int32`` by default
* Wed Dec 27 2023 Dirk Müller <dmueller@suse.com>
- update to 3.5.2:
* skip pandas ``pd.NA`` similar to ``None``
* add ``score_multiplier`` argument to ``process.cdist`` which
allows multiplying the end result scores
* with a constant factor.
* drop support for Python 3.7
* improve performance of simd implementation for ``LCS`` /
``Indel`` / ``Jaro`` / ``JaroWinkler``
* improve performance of Jaro and Jaro Winkler for long
sequences
* implement ``process.extract`` with ``limit=1`` using
``process.extractOne`` which can be faster
* the preprocessing function was always called through Python
due to a broken C-API version check
* fix wraparound issue in simd implementation of Jaro and Jaro
Winkler
* upgrade to ``Cython==3.0.3``
* add simd implementation for Jaro and Jaro Winkler
* add missing tag for python 3.12 support
* upgrade to ``Cython==3.0.2``
* implement the remaining missing features from the C++
implementation in the pure Python implementation
* added support for Python 3.12
* build x86 with sse2/avx2 runtime detection
* upgrade to ``taskflow==3.6``
* added keyword argument ``pad`` to Hamming distance. This
controls whether sequences of different
* length should be padded or lead to a ``ValueError``
* improve consistency of exception messages between the C++ and
pure Python implementation
* upgrade required Cython version to ``Cython==3.0.0b3``
* allow the usage of ``Hamming`` for different string lengths.
Length differences are handled as insertions / deletions
* remove support for boolean preprocessor functions in
``rapidfuzz.fuzz`` and ``rapidfuzz.process``.
* The processor argument is now always a callable or ``None``.
* update defaults of the processor argument to be ``None``
everywhere. For affected functions this can change results,
since strings are no longer preprocessed.
* fix incorrect tag dispatching implementation leading to AVX2
instructions in the SSE2 code path
* add wheels for windows arm64
* allow the usage of finite generators as choices in
``process.extract``
* fix handling of non symmetric scorers in pure python version
of ``process.cdist``
* fix default dtype handling when using ``process.cdist`` with
pure python scorers
* Fri Dec 01 2023 Antonio Larrosa <alarrosa@suse.com>
- Do not buildrequire PyInstaller nor pandas which aren't used
* Wed May 31 2023 Johannes Kastl <kastl@b1-systems.de>
- do not use glob for dist-info directory name
* Mon May 08 2023 Johannes Kastl <kastl@b1-systems.de>
- add sle15_python_module_pythons
* Mon Feb 27 2023 Matej Cepl <mcepl@suse.com>
- Clean up the SPEC file.
* Fri Feb 24 2023 Torsten Gruner <simmphonie@opensuse.org>
- update to version 2.13.7
* fix function signature of get_requires_for_build_wheel
* Sat Dec 17 2022 Torsten Gruner <simmphonie@opensuse.org>
- update to version 2.13.6
* Changed
+ reformat changelog as restructured text to get rig of m2r2 dependency
- version 2.13.5
* Added
+ added docs to sdist
* Fixed
+ fix two cases of undefined behavior in process.cdist
- version 2.13.4
* Changed
+ handle float("nan") similar to None for query / choice, since this is
common for non-existent data in tools like numpy
* Fixed
+ fix handling on None/float("nan") in process.distance
+ use absolute imports inside tests
- version 2.13.3
* Fixed
+ improve handling of functions wrapped using functools.wraps
+ fix broken fallback to Python implementation when the a ImportError occurs on import.
This can e.g. occur when the binary has a dependency on libatomic, but it
is unavailable on the system
+ define CMAKE_C_COMPILER_AR/CMAKE_CXX_COMPILER_AR/CMAKE_C_COMPILER_RANLIB/CMAKE_CXX_COMPILER_RANLIB
if they are not defined yet
* Thu Oct 27 2022 Markéta Machová <mmachova@suse.com>
- initial packaging (v2.13.2), dependency of weblate
Files
/usr/lib/python3.11/site-packages/rapidfuzz
/usr/lib/python3.11/site-packages/rapidfuzz-3.14.3.dist-info
/usr/lib/python3.11/site-packages/rapidfuzz-3.14.3.dist-info/INSTALLER
/usr/lib/python3.11/site-packages/rapidfuzz-3.14.3.dist-info/METADATA
/usr/lib/python3.11/site-packages/rapidfuzz-3.14.3.dist-info/RECORD
/usr/lib/python3.11/site-packages/rapidfuzz-3.14.3.dist-info/REQUESTED
/usr/lib/python3.11/site-packages/rapidfuzz-3.14.3.dist-info/WHEEL
/usr/lib/python3.11/site-packages/rapidfuzz-3.14.3.dist-info/entry_points.txt
/usr/lib/python3.11/site-packages/rapidfuzz-3.14.3.dist-info/licenses
/usr/lib/python3.11/site-packages/rapidfuzz-3.14.3.dist-info/licenses/LICENSE
/usr/lib/python3.11/site-packages/rapidfuzz/__init__.py
/usr/lib/python3.11/site-packages/rapidfuzz/__init__.pyi
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/__init__.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/__init__.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/_common_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/_common_py.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/_feature_detector.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/_feature_detector.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/_utils.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/_utils.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/fuzz.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/fuzz.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/fuzz_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/fuzz_py.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/process.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/process.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/process_cpp.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/process_cpp.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/process_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/process_py.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/utils.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/utils.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/utils_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pycache__/utils_py.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pyinstaller
/usr/lib/python3.11/site-packages/rapidfuzz/__pyinstaller/__init__.py
/usr/lib/python3.11/site-packages/rapidfuzz/__pyinstaller/__pycache__
/usr/lib/python3.11/site-packages/rapidfuzz/__pyinstaller/__pycache__/__init__.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pyinstaller/__pycache__/__init__.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pyinstaller/__pycache__/test_rapidfuzz_packaging.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pyinstaller/__pycache__/test_rapidfuzz_packaging.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/__pyinstaller/test_rapidfuzz_packaging.py
/usr/lib/python3.11/site-packages/rapidfuzz/_common_py.py
/usr/lib/python3.11/site-packages/rapidfuzz/_feature_detector.py
/usr/lib/python3.11/site-packages/rapidfuzz/_utils.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance
/usr/lib/python3.11/site-packages/rapidfuzz/distance/DamerauLevenshtein.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/DamerauLevenshtein.pyi
/usr/lib/python3.11/site-packages/rapidfuzz/distance/DamerauLevenshtein_py.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Hamming.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Hamming.pyi
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Hamming_py.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Indel.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Indel.pyi
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Indel_py.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Jaro.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Jaro.pyi
/usr/lib/python3.11/site-packages/rapidfuzz/distance/JaroWinkler.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/JaroWinkler.pyi
/usr/lib/python3.11/site-packages/rapidfuzz/distance/JaroWinkler_py.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Jaro_py.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/LCSseq.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/LCSseq.pyi
/usr/lib/python3.11/site-packages/rapidfuzz/distance/LCSseq_py.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Levenshtein.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Levenshtein.pyi
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Levenshtein_py.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/OSA.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/OSA.pyi
/usr/lib/python3.11/site-packages/rapidfuzz/distance/OSA_py.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Postfix.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Postfix.pyi
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Postfix_py.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Prefix.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Prefix.pyi
/usr/lib/python3.11/site-packages/rapidfuzz/distance/Prefix_py.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__init__.py
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__init__.pyi
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/DamerauLevenshtein.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/DamerauLevenshtein.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/DamerauLevenshtein_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/DamerauLevenshtein_py.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Hamming.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Hamming.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Hamming_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Hamming_py.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Indel.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Indel.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Indel_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Indel_py.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Jaro.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Jaro.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/JaroWinkler.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/JaroWinkler.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/JaroWinkler_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/JaroWinkler_py.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Jaro_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Jaro_py.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/LCSseq.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/LCSseq.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/LCSseq_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/LCSseq_py.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Levenshtein.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Levenshtein.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Levenshtein_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Levenshtein_py.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/OSA.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/OSA.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/OSA_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/OSA_py.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Postfix.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Postfix.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Postfix_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Postfix_py.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Prefix.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Prefix.cpython-311.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache__/Prefix_py.cpython-311.opt-1.pyc
/usr/lib/python3.11/site-packages/rapidfuzz/distance/__pycache_