RapidFuzz
rapid fuzzy string matching
Decision gist · record as of 2026-08-14
Yes. RapidFuzz is actively maintained, widely used (top 1000 PyPI packages), has no known vulnerabilities, and offers a permissive MIT license. The medium install friction is offset by pre-built wheels for common platforms and clear documentation. Install it if you need fuzzy string matching; it's a solid replacement for FuzzyWuzzy with better licensing and performance.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Windows requires Visual C++ 2019 redistributable; Python 3.10 or later required.
- Medium install friction due to compiled C++ components; pre-built wheels available for macOS, Linux x86_64, Windows, and ARM platforms.
- On Windows, Visual C++ 2019 redistributable is required.
License · maintenance · safety
MIT (permissive) — MIT licensed, permissive terms allow use in any project without license adoption requirements, unlike some competing fuzzy matching libraries.
last release 2026-04-07 (129 days) · last repo commit 2026-08-10 · 4,065 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 184,194,377 downloads/mo, #225 on PyPI
Alternatives
Verify before relying
pip install rapidfuzz
from rapidfuzz import fuzz
fuzz.ratio("this is a test", "this is a test!")
# Returns: 96.55172413793103- Performance improvement magnitude over FuzzyWuzzy in real-world workloads beyond the benchmark scenario shown.
- Whether API differences from FuzzyWuzzy are significant enough to require code changes in existing projects.
What it is and what it does
RapidFuzz is a string similarity library that calculates how closely two text strings match using algorithms like Levenshtein Distance, Jaro-Winkler, and token-based methods. It's written primarily in C++ for speed while exposing a Python interface, making it suitable for tasks like deduplication, record matching, and fuzzy search. The library provides multiple scoring functions (ratio, partial_ratio, token_sort_ratio, token_set_ratio, WRatio, QRatio) and a process module for efficiently comparing a query against lists of candidates.
Unlike FuzzyWuzzy, which it's designed to replace, RapidFuzz is MIT licensed, includes more string metrics, and implements algorithmic improvements for faster matching. By default, strings are not preprocessed (lowercased or stripped), so exact case and punctuation matter unless you explicitly apply preprocessing utilities. It supports Python 3.10 and later across macOS, Linux, Windows, and ARM architectures via pre-built wheels.
Use it for
- Deduplicating user-submitted names or addresses by finding near-duplicate entries in a database.
- Matching product names across different catalogs or suppliers with slight spelling variations.
- Autocomplete and search suggestions that tolerate typos or partial input.
- Entity resolution in data integration pipelines where records from different sources need linking.
- Detecting duplicate bug reports or support tickets with similar descriptions.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
RapidFuzz is actively maintained, widely used (top 1000 PyPI packages), has no known vulnerabilities, and offers a permissive MIT license. The medium install friction is offset by pre-built wheels for common platforms and clear documentation. Install it if you need fuzzy string matching; it's a solid replacement for FuzzyWuzzy with better licensing and performance.
Install
rapidfuzz on PyPI
Before you install
Medium install friction due to compiled C++ components; pre-built wheels available for macOS, Linux x86_64, Windows, and ARM platforms. On Windows, Visual C++ 2019 redistributable is required. Active maintenance with recent releases.
Windows requires Visual C++ 2019 redistributable; Python 3.10 or later required.
License in practice
MIT licensed, permissive terms allow use in any project without license adoption requirements, unlike some competing fuzzy matching libraries.
Quickstart
pip install rapidfuzz
from rapidfuzz import fuzz
fuzz.ratio("this is a test", "this is a test!")
# Returns: 96.55172413793103
Verify before relying
- Performance improvement magnitude over FuzzyWuzzy in real-world workloads beyond the benchmark scenario shown.
- Whether API differences from FuzzyWuzzy are significant enough to require code changes in existing projects.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 129 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 184,194,377 / month, #225 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: rapidfuzz-3.14.5-cp310-cp310-macosx_10_9_x86_64.whl; rapidfuzz-3.14.5-cp310-cp310-macosx_11_0_arm64.whl; rapidfuzz-3.14.5-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; rapidfuzz-3.14.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; rapidfuzz-3.14.5-cp310-cp310-manylinux_2_39_riscv64.whl; rapidfuzz-3.14.5-cp310-cp310-musllinux_1_2_aarch64.whl; rapidfuzz-3.14.5-cp310-cp310-musllinux_1_2_riscv64.whl; rapidfuzz-3.14.5-cp310-cp310-musllinux_1_2_x86_64.whl; rapidfuzz-3.14.5-cp310-cp310-win32.whl; rapidfuzz-3.14.5-cp310-cp310-win_amd64.whl; rapidfuzz-3.14.5-cp310-cp310-win_arm64.whl; rapidfuzz-3.14.5-cp311-cp311-macosx_10_9_x86_64.whl; rapidfuzz-3.14.5-cp311-cp311-macosx_11_0_arm64.whl; rapidfuzz-3.14.5-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; rapidfuzz-3.14.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; rapidfuzz-3.14.5-cp311-cp311-manylinux_2_39_riscv64.whl; rapidfuzz-3.14.5-cp311-cp311-musllinux_1_2_aarch64.whl; rapidfuzz-3.14.5-cp311-cp311-musllinux_1_2_riscv64.whl; rapidfuzz-3.14.5-cp311-cp311-musllinux_1_2_x86_64.whl; rapidfuzz-3.14.5-cp311-cp311-win32.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “token sort ratio”
- RapidFuzzRapidFuzz provides fast fuzzy string matching using Levenshtein…
- fuzzywuzzyFuzzyWuzzy performs fuzzy string matching using Levenshtein distance…
- lexical-diversityCalculates lexical diversity metrics (TTR, MTLD, HDD, and others) on…
Give your agent the search over MCP, or paste the wish link into any chat.
More Text Processing packages
A drop-in replacement for Python's standard `re` module that adds advanced regex features like nested sets, fuzzy matching, lookaround in conditionals, and full Unicode case-folding while maintaining backward compatibility.
pyparsing provides a library for building text parsers directly in Python code using composable grammar classes, handling quoted strings, whitespace variation, and embedded comments without regex or lex/yacc.
Install it if you need to parse text or define grammars programmatically.
fonttools manipulates font files in multiple formats (TrueType, OpenType, AFM, Type 1, Mac-specific) and includes TTX, a tool to convert fonts to and from XML text format.
Install it if you need to read, write, or manipulate fonts programmatically or via the TTX command-line tool.
Docutils converts plaintext documentation in reStructuredText format into multiple output formats including HTML, XML, and LaTeX using a modular processing system.
tinycss2 parses CSS strings into token and block objects, and generates CSS strings from those objects, following the CSS Syntax Level 3 specification without enforcing specific properties or values.
Install it if your project requires CSS tokenization or syntax manipulation.
Provides Python bindings to the Brotli compression library, enabling lossless compression and decompression using a modern LZ77 variant with Huffman coding and context modeling.
Install it if you need Brotli compression in Python; the API is straightforward and the library is battle-tested.
See also thefuzz · fuzzywuzzy · pfzy · pysimstring · python-Levenshtein · Levenshtein · jarowinkler · fuzzysearch · cydifflib · jiwer