jarowinkler
library for fast approximate string matching using Jaro and Jaro-Winkler similarity
What it is and what it does
JaroWinkler is a specialized string similarity library that computes Jaro and Jaro-Winkler similarity scores between strings or sequences of hashable objects. It wraps a C++14 implementation using bitparallelism to achieve high performance, and is designed to integrate directly with rapidfuzz for efficient batch operations. The library accepts any sequences of hashable objects, not just strings, and supports a score_cutoff parameter to filter weak matches and enable faster code paths internally.
The package is lightweight and installs as a pure Python wheel with a single runtime dependency on rapidfuzz. It targets developers building fuzzy matching, deduplication, or record-linkage systems where string similarity is a core operation. The MIT license and broad Python version support (3.8–3.12) make it suitable for most projects, though the dormant maintenance status means no active development or bug fixes are expected.
Use it for:
- Deduplicating or matching similar names or text entries in databases or data pipelines.
- Building a fuzzy search or autocomplete feature that tolerates typos and spelling variations.
- Record linkage or entity resolution tasks where you need to find likely matches across datasets.
- Batch similarity scoring via rapidfuzz's process.cdist for comparing large collections of strings.
- Custom sequence matching where objects implement __hash__ to define similarity by identity.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Calculates Jaro and Jaro-Winkler string similarity scores, optimized for performance and designed to integrate with rapidfuzz for batch operations on strings or sequences of hashable objects.
Yes, if you need fast Jaro-Winkler similarity scoring and are comfortable with dormant maintenance. The package is stable, has no known vulnerabilities, installs with low friction, and integrates well with rapidfuzz for batch operations. Not recommended if you require active maintenance or expect frequent updates to support new Python versions.
Install
jarowinkler on PyPI
pip
pip install jarowinkleruv
uv add jarowinklerpoetry
poetry add jarowinklerInstalling jarowinkler
Before you install
Low friction: pure Python wheel distribution with no compiled dependencies required for installation. Maintenance is dormant—last commit was 2024-01-08 and no release in over a year—but the repository remains active and the package is stable.
License in practice
MIT license is permissive; you can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install jarowinkler
from jarowinkler import jaro_similarity, jarowinkler_similarity
jaro_similarity("Johnathan", "Jonathan")
# 0.8796296296296297
jarowinkler_similarity("Johnathan", "Jonathan")
# 0.9037037037037037
Requires Python 3.8 or later. Source builds require a C++14 compatible compiler.
Verify before relying
- Whether the dormant maintenance status (last commit 2024-01-08) affects long-term compatibility with future Python versions.
- Performance benchmarks claimed in the description—exact speedup figures vs. jellyfish and python-Levenshtein are not quantified in the fact sheet.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — rapidfuzz |
| Maintenance | dormant — 1,015 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 261,365/month — #8,383 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: jarowinkler-2.0.1-py3-none-any.whl
Keywords: string, comparison, edit-distance
Tags
More Text Processing packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyparsingpyparsing provides a library for building text…
permissive · top 1,000 on PyPI
docutilsDocutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
RapidFuzzRapidFuzz provides fast fuzzy string matching…
permissive · top 1,000 on PyPI
tinycss2tinycss2 parses CSS strings into token and…
permissive · top 1,000 on PyPI
llama-parseLlamaParse parses complex documents (PDFs,…
permissive · top 1,000 on PyPI
jaro-winklerComputes Jaro and Jaro-Winkler string…
copyleft · top 5,000 on PyPI
pyjarowinklerComputes Jaro and Jaro-Winkler similarity and…
permissive · top 15,000 on PyPI
strsimpyImplements a dozen string similarity and…
permissive · top 15,000 on PyPI
textdistanceComputes distance and similarity between text…
permissive · top 5,000 on PyPI
cydifflibCyDifflib provides a faster, drop-in…
permissive · top 15,000 on PyPI
thefuzzTheFuzz performs fuzzy string matching using…
permissive · top 5,000 on PyPI
jiwerJiWER computes speech recognition evaluation…
permissive · top 5,000 on PyPI
python-LevenshteinComputes Levenshtein edit distance, string…
copyleft · top 5,000 on PyPI
LevenshteinLevenshtein computes string edit distances,…
copyleft · top 1,000 on PyPI