{"id":417,"library":"rapidfuzz","title":"RapidFuzz: Rapid fuzzy string matching in Python","description":"RapidFuzz is a high-performance Python library for rapid fuzzy string matching, utilizing various string metrics. The current version is 3.14.3, released on March 28, 2026. It is actively maintained with regular updates to improve performance and functionality.","status":"active","version":"3.14.3","language":"python","source_language":"en","source_url":"https://github.com/rapidfuzz/RapidFuzz","tags":["string matching","fuzzy matching","Python","RapidFuzz"],"install":[{"cmd":"pip install rapidfuzz","lang":"bash","label":"Install RapidFuzz"}],"dependencies":[{"reason":"Required for efficient numerical computations","package":"numpy","optional":false}],"imports":[{"note":"Direct import from the 'fuzz' module","symbol":"fuzz","correct":"from rapidfuzz import fuzz"}],"quickstart":{"code":"from rapidfuzz import fuzz\n\n# Compare two strings\nstring1 = 'hello world'\nstring2 = 'helo world'\n\n# Calculate similarity ratio\nsimilarity = fuzz.ratio(string1, string2)\nprint(f'Similarity: {similarity}%')","lang":"python","description":"A simple example demonstrating how to use RapidFuzz to compare two strings and calculate their similarity ratio."},"warnings":[{"fix":"Use the 'processor' parameter with 'utils.default_process' to enable preprocessing.","message":"Starting from version 3.0.0, RapidFuzz no longer preprocesses strings by default (e.g., removing non-alphanumeric characters, trimming whitespaces, converting to lowercase). This change may affect similarity scores when comparing strings with different cases or punctuation. To enable preprocessing, use the 'processor' parameter with 'utils.default_process'.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Install 'numpy' using 'pip install numpy'.","message":"Ensure that the 'numpy' package is installed, as RapidFuzz relies on it for efficient numerical computations. If 'numpy' is not installed, you may encounter import errors or performance issues.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-05-12T13:41:14.881Z","next_check":"2026-06-26T00:00:00.000Z","problems":[{"fix":"Install the 'Build Tools for Visual Studio' (for Windows) and ensure the 'Desktop development with C++' workload is selected. On Linux/macOS, ensure development tools like `build-essential` (Debian/Ubuntu) or `Xcode Command Line Tools` (macOS) are installed.","cause":"RapidFuzz is a C++ extension that requires a compatible C++ compiler (like MSVC on Windows) to be installed on your system for pip to compile it during installation.","error":"error: Microsoft Visual C++ 14.0 or greater is required"},{"fix":"Install the library using pip: `pip install rapidfuzz`","cause":"The rapidfuzz library has not been installed in your current Python environment, or the environment where it's installed is not active.","error":"ModuleNotFoundError: No module named 'rapidfuzz'"},{"fix":"Import `ratio` from `rapidfuzz.fuzz` or import `fuzz` and access it as `fuzz.ratio`:\n```python\nfrom rapidfuzz.fuzz import ratio\nratio(\"apple\", \"appel\")\n# OR\nfrom rapidfuzz import fuzz\nfuzz.ratio(\"apple\", \"appel\")\n```","cause":"The `ratio` function (and other fuzzy string metrics) are located within the `rapidfuzz.fuzz` submodule, not directly under the top-level `rapidfuzz` module.","error":"AttributeError: module 'rapidfuzz' has no attribute 'ratio'"},{"fix":"Import `extract` from `rapidfuzz.process`:\n```python\nfrom rapidfuzz import process\nprocess.extract(\"apple\", [\"orange\", \"apple pie\", \"banana\"])\n```","cause":"The `extract` function, used for extracting best matches from a list of choices, is located in the `rapidfuzz.process` submodule, not `rapidfuzz.fuzz`.","error":"AttributeError: module 'rapidfuzz.fuzz' has no attribute 'extract'"}],"ecosystem":"pypi","meta_description":null,"install_score":100,"install_tag":"verified","quickstart_score":80,"quickstart_tag":"verified","pypi_latest":null,"install_checks":{"last_tested":"2026-05-12","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.3,"disk_size":"33.6M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.02,"mem_mb":1.3,"disk_size":"30M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.06,"mem_mb":1.4,"disk_size":"35.5M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.04,"mem_mb":1.4,"disk_size":"32M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.04,"mem_mb":1.2,"disk_size":"27.4M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.2,"disk_size":"24M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.04,"mem_mb":1.4,"disk_size":"27.0M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.04,"mem_mb":1.2,"disk_size":"24M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.2,"disk_size":"33.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.2,"disk_size":"29M"}]},"quickstart_checks":{"last_tested":"2026-04-23","tag":"verified","tag_description":"quickstart runs on critical runtimes, recently tested","results":[{"runtime":"python:3.10-alpine","exit_code":0},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":0},{"runtime":"python:3.11-slim","exit_code":0},{"runtime":"python:3.12-alpine","exit_code":0},{"runtime":"python:3.12-slim","exit_code":0},{"runtime":"python:3.13-alpine","exit_code":0},{"runtime":"python:3.13-slim","exit_code":0},{"runtime":"python:3.9-alpine","exit_code":0},{"runtime":"python:3.9-slim","exit_code":0}]}}