Skip to main content

High-performance string similarity library for Python, written in Rust

Project description

FuzzyRust 🔍

PyPI CI Coverage License

High-performance string similarity library for Python, written in Rust.

FuzzyRust is designed for searching through messy data full of typos, manufacturer part codes, and string variations. It provides multiple similarity algorithms and efficient indexing structures for scalable fuzzy search.

Features

  • Blazing Fast: Core algorithms written in Rust with parallel processing support
  • 🎯 Multiple Algorithms: Levenshtein, Damerau-Levenshtein, Jaro-Winkler, Soundex, Metaphone, N-grams, and more
  • 📊 Efficient Indexing: BK-tree and N-gram indices for fast fuzzy search at scale
  • 🔄 Batch Processing: Parallel search across millions of records
  • 🌍 Unicode Support: Full Unicode character handling
  • 📝 Type Hints: Complete type annotations for IDE support
  • 🧩 Extensible: Modular design for easy customization

Installation

pip install fuzzyrust

Or build from source:

pip install maturin
maturin develop --release

Quick Start

Basic Similarity

import fuzzyrust as fr

# Jaro-Winkler similarity (great for names)
fr.jaro_winkler_similarity("Robert", "Rupert")  # 0.84

# Levenshtein distance (edit distance)
fr.levenshtein("kitten", "sitting")  # 3

# Damerau-Levenshtein (handles transpositions)
fr.damerau_levenshtein("ca", "ac")  # 1 (just one swap)

# Phonetic matching
fr.soundex_match("Robert", "Rupert")  # True
fr.metaphone_match("phone", "fone")   # True

Finding Best Matches

# Search through a list for best matches
parts = ["ABC-123", "ABC-124", "XYZ-999", "ABC-12", "ABD-123"]
matches = fr.find_best_matches(parts, "ABC-123", algorithm="jaro_winkler", limit=3)

# Returns MatchResult objects with text and score attributes
for match in matches:
    print(f"{match.text}: {match.score:.2f}")
# ABC-123: 1.00
# ABC-124: 0.95
# ABC-12: 0.93

Using Indices for Large Datasets

For searching through large datasets, use the indexing structures:

# BK-tree: Great for edit distance queries
tree = fr.BkTree()
tree.add_all(["hello", "hallo", "hullo", "world", "help"])
results = tree.search("helo", max_distance=2)

# Returns SearchResult objects with id, text, score, distance
for r in results:
    print(f"{r.text}: distance={r.distance}, score={r.score:.2f}")
# hello: distance=1, score=0.80
# hallo: distance=2, score=0.60

# N-gram Index: Fast candidate filtering + similarity scoring
products = ["PRODUCT-ABC", "PRODUCT-XYZ", "ITEM-123"]  # Your product list
index = fr.NgramIndex(ngram_size=2)  # Use bigrams
index.add_all(products)
results = index.search(
    "PRDUCT-XYZ",
    algorithm="jaro_winkler",
    min_similarity=0.7,
    limit=10
)

# Returns SearchResult objects
for r in results:
    print(f"{r.text}: {r.score:.2f}")

Batch Processing

Process millions of comparisons in parallel:

# Compare many strings against a query - returns MatchResult objects
items = ["apple", "application", "apply", "banana"]
matches = fr.batch_jaro_winkler(items, "appel")

for match in matches:
    print(f"{match.text}: {match.score:.2f}")
# apple: 0.87
# application: 0.71
# ...

# Batch search with an index
results = index.batch_search(
    queries=user_queries,
    algorithm="jaro_winkler",
    min_similarity=0.8
)
# Returns List[List[SearchResult]] - one list per query

Case-Insensitive Matching

All similarity functions have case-insensitive variants with the _ci suffix:

# Regular functions are case-sensitive
fr.levenshtein("Hello", "hello")  # 1

# Case-insensitive variants ignore case
fr.levenshtein_ci("Hello", "HELLO")  # 0

# Works with all algorithms
fr.jaro_winkler_similarity_ci("Product-ABC", "PRODUCT-ABC")  # 1.0
fr.ngram_similarity_ci("Test", "TEST", ngram_size=2)  # 1.0
fr.damerau_levenshtein_ci("ab", "BA")  # 1 (transposition)

Deduplication

Find duplicate entries in your data with a single function call:

items = ["iPhone 15", "iphone 15", "IPHONE 15", "Samsung Galaxy", "iPhone 14"]

result = fr.find_duplicates(
    items,
    algorithm="jaro_winkler",
    threshold=0.85,
    normalize=True  # Handles case and whitespace
)

print(f"Duplicate groups: {result.groups}")
# [["iPhone 15", "iphone 15", "IPHONE 15"]]

print(f"Unique items: {result.unique}")
# ["Samsung Galaxy", "iPhone 14"]

print(f"Total duplicates found: {result.total_duplicates}")
# 2

Multi-Algorithm Comparison

Compare the same strings using different algorithms to find the best one for your use case:

strings = ["hello", "hallo", "help", "world"]
query = "helo"

comparisons = fr.compare_algorithms(
    strings,
    query,
    algorithms=["levenshtein", "jaro_winkler", "ngram"],  # Optional: specify algorithms
    limit=3  # Top 3 matches per algorithm
)

for comp in comparisons:
    print(f"\n{comp.algorithm}: overall score {comp.score:.3f}")
    for match in comp.matches:
        print(f"  {match.text}: {match.score:.3f}")

# Output:
# jaro_winkler: overall score 0.917
#   hello: 0.917
#   hallo: 0.867
#   help: 0.783

Algorithms

Edit Distance Family

Function Description Best For
levenshtein Classic edit distance General typos
damerau_levenshtein Includes transpositions Keyboard typos
hamming Positional differences Fixed-length codes

Similarity Scores

Function Description Best For
jaro_similarity Jaro algorithm Short strings
jaro_winkler_similarity Prefix-weighted Jaro Names, codes
ngram_similarity N-gram overlap Partial matches
lcs_similarity Longest common subsequence Rearrangements
cosine_similarity_* Vector space model Document similarity

Phonetic

Function Description Best For
soundex / soundex_match Classic phonetic English names
metaphone / metaphone_match Improved phonetic More accurate

Indexing Structures

BkTree

Efficient fuzzy search using metric space properties:

tree = fr.BkTree(use_damerau=False)  # or True for transpositions
tree.add_all(strings)
tree.search(query, max_distance=2)
tree.find_nearest(query, k=5)

NgramIndex

Fast candidate filtering with similarity scoring:

index = fr.NgramIndex(ngram_size=2, min_similarity=0.5)
index.add_with_data("ABC-123", 42)  # Store with user data

# Search returns SearchResult objects
results = index.search(query, algorithm="jaro_winkler")
for r in results:
    print(f"{r.text}: {r.score:.2f} (data: {r.data})")

# Find k-nearest neighbors
nearest = index.find_nearest(query, k=5)

# Check if exact match exists
if index.contains("ABC-123"):
    print("Found exact match!")

HybridIndex

Best of both worlds - combines n-gram filtering with BK-tree precision:

index = fr.HybridIndex(ngram_size=3)
index.add_all(millions_of_records)

# Search with similarity threshold
results = index.search(query, min_similarity=0.8, limit=10)

# Batch search multiple queries
batch_results = index.batch_search(
    ["query1", "query2", "query3"],
    limit=5
)

# Find k-nearest neighbors
nearest = index.find_nearest(query, k=10)

# Check for exact matches
if index.contains("exact-match"):
    print("Found!")

Performance Tips

  1. Choose the right algorithm:

    • jaro_winkler: Best for names and short codes
    • levenshtein: Best for general text with typos
    • ngram: Best for partial matching
  2. Use indices for large datasets:

    • < 1,000 items: Direct comparison is fine
    • < 100,000 items: Use NgramIndex
    • < 1,000,000+ items: Use HybridIndex
  3. Set appropriate thresholds:

    # Pre-filter with min_similarity
    index.search(query, min_similarity=0.7, limit=10)
    
  4. Use batch operations:

    # Process many queries in parallel
    index.batch_search(queries, ...)
    

Example: Product Search

import fuzzyrust as fr

# Index your product catalog
products = [
    "iPhone 15 Pro Max 256GB",
    "iPhone 15 Pro 128GB",
    "Samsung Galaxy S24 Ultra",
    "Google Pixel 8 Pro",
    # ... millions more
]

index = fr.HybridIndex(ngram_size=3)
for i, product in enumerate(products):
    index.add_with_data(product, i)

# Search with typos (use case-insensitive search for better results)
results = index.search(
    "iphone 15 pro max",  # User query with different case
    algorithm="jaro_winkler",
    min_similarity=0.7,
    limit=5
)

# Results are SearchResult objects
for r in results:
    print(f"{r.score:.2f}: {r.text} (product_id: {r.data})")
# 0.95: iPhone 15 Pro Max 256GB (product_id: 0)
# 0.89: iPhone 15 Pro 128GB (product_id: 1)

Example: Deduplication

import fuzzyrust as fr

# Customer data with typos and variations
customer_names = [
    "John Smith",
    "Jon Smith",
    "JOHN SMITH",
    "Jane Doe",
    "Jane M. Doe",
    "Bob Johnson",
    "Robert Johnson",
]

# Use the built-in deduplication helper
result = fr.find_duplicates(
    customer_names,
    algorithm="jaro_winkler",
    threshold=0.85,
    normalize=True  # Handles case differences and whitespace
)

# Review duplicate groups
for i, group in enumerate(result.groups):
    print(f"\nDuplicate group {i + 1}:")
    for name in group:
        print(f"  - {name}")

# Output:
# Duplicate group 1:
#   - John Smith
#   - Jon Smith
#   - JOHN SMITH
#
# Duplicate group 2:
#   - Jane Doe
#   - Jane M. Doe

print(f"\nUnique records: {result.unique}")
# ['Bob Johnson', 'Robert Johnson']

print(f"Total duplicates removed: {result.total_duplicates}")
# 3

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

Dual-licensed under MIT or Apache-2.0 at your option.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fuzzyrust-0.1.1.tar.gz (144.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

fuzzyrust-0.1.1-cp313-cp313-win_amd64.whl (476.7 kB view details)

Uploaded CPython 3.13Windows x86-64

fuzzyrust-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (596.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

fuzzyrust-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (558.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

fuzzyrust-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (511.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fuzzyrust-0.1.1-cp313-cp313-macosx_10_12_x86_64.whl (558.8 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

fuzzyrust-0.1.1-cp312-cp312-win_amd64.whl (477.2 kB view details)

Uploaded CPython 3.12Windows x86-64

fuzzyrust-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (596.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

fuzzyrust-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (558.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

fuzzyrust-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (511.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

fuzzyrust-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl (559.2 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

fuzzyrust-0.1.1-cp311-cp311-win_amd64.whl (472.2 kB view details)

Uploaded CPython 3.11Windows x86-64

fuzzyrust-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (590.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

fuzzyrust-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (554.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

fuzzyrust-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (507.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

fuzzyrust-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl (555.2 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

fuzzyrust-0.1.1-cp310-cp310-win_amd64.whl (472.5 kB view details)

Uploaded CPython 3.10Windows x86-64

fuzzyrust-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (591.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

fuzzyrust-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (554.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

fuzzyrust-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (508.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

fuzzyrust-0.1.1-cp310-cp310-macosx_10_12_x86_64.whl (555.5 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

fuzzyrust-0.1.1-cp39-cp39-win_amd64.whl (472.6 kB view details)

Uploaded CPython 3.9Windows x86-64

fuzzyrust-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (591.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

fuzzyrust-0.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (555.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

fuzzyrust-0.1.1-cp39-cp39-macosx_11_0_arm64.whl (508.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

fuzzyrust-0.1.1-cp39-cp39-macosx_10_12_x86_64.whl (555.6 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

Details for the file fuzzyrust-0.1.1.tar.gz.

File metadata

  • Download URL: fuzzyrust-0.1.1.tar.gz
  • Upload date:
  • Size: 144.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for fuzzyrust-0.1.1.tar.gz
Algorithm Hash digest
SHA256 313f83cdf1e2971634951cc61a60730ccd418460f43569361d59b4d66536a465
MD5 1a55459ffae3714e85bf11c62a7c5694
BLAKE2b-256 a6cd725de657837898128fe81606c8662f614ea5d70ffaf3a6dc51591b6e447b

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6558516946a91a1bcd07e1f521be290141cf88c341468aff7a5c035bbcb3ad0e
MD5 2f86c3f8393bd3a114b1f4922aefc0e8
BLAKE2b-256 be1c14350865b7d69d385c2f5c883994d6d0183219b12d64d0b269faf8880995

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5dc96fb2665c7f4ba952312f4f7e5f2430bfd66b12b92b17a4863277adc5f4da
MD5 fabf876190c502f75a147b576a727227
BLAKE2b-256 f48f0a4b28c5360f2feed78d4239f664676f54cb0779c47035170880538c95e2

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8cadf81fbee07b1bcdbfc4e61464856b820f296c8daab12a2938a0f7d92609e0
MD5 c7997cc815af8a38964e5d1948b55f80
BLAKE2b-256 45cf5542f60da334ffa1bf49e272535e4956244802fa943b06f785b5897478d6

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed4c9d26b1fd7f22a6763fc5fce6fec45c69ef8cf534500fda557373bbb208ac
MD5 0f15b631864c720a0fc19c7c463b2c6c
BLAKE2b-256 decb6df427644cfcf044e843649b3fb729d76815bb068e03ec40f3e3eb80eadc

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 67a2b4f0efac4d515284c47e5e920a7df104df7e9a023d9625eb6cbe32dd07a5
MD5 e2f89d0492127c5563988da221b448fb
BLAKE2b-256 849325471b2b278c39b0dd2c11a6f100dfeb89a224a80b8a8ca94a335d71ebed

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 45d45d694c58aefb1a49c660800b1eb744992f85b0b4ec63e591202ec668df65
MD5 95c1e34d798b1870385c8fc8de5024d0
BLAKE2b-256 4c5ce6b4a37e59763464fc75e701396fc178dc446f1fe30f283c99baf00bea99

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f129410756cb4063cec36f4c2c5563c570fe2a534b5f66f15b0d073b32b754a5
MD5 1c4f332d2c573ee6ad58c080a509c07b
BLAKE2b-256 5bf98c6ef9353498d00e2aef6d59c6591672d6e64a872bc0c7962d4786cb698f

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6a0b26af7d216a0271face80e1545cff267a226574472452eef821d43340616b
MD5 c2282f0fae69632ab51a3a2c0b8e8d4c
BLAKE2b-256 973e17fc61a3411e65e69628d1b7bc36ccf9997214d5a0a16fb5e613ccda5f2d

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f3731b7d150723019b1428525cde1570fa2235e167e5f1b1649ad14437d29807
MD5 d47f2083f2b5d2a2bc8be5cd76f317ac
BLAKE2b-256 b49e5166e45042578c0a0654dd2fb9a6d69d2aaa126f7e5dc031012a1ca0fd2d

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3cd48c179be88612ee5a8325a7aa8e18b24e7edc84e9b20cd5ee7ad6bbc52ff5
MD5 5703d8a3534fc37468e46e50f82c50d7
BLAKE2b-256 a9fb3b55068fe659cae1b67de43e97e69209da14fe1f0e15b959bc98313f8384

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e36babddade9917b6b91a87a4f2e87161c5e87dab90bf1751debdc0254053405
MD5 df844084cb8185ef43125ce3986b67f2
BLAKE2b-256 6ce0e272cb2aea5bae702dd17655b970937c66b7e56eaef20cfe173bd50980af

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f67d8ee2e27a3abe9a6e03d2018d9e523209ddf22e7c6deee48b4efedd199aa5
MD5 7f2819790db8b97214c31b4b35a9cab5
BLAKE2b-256 c99ec7d2e45e9dd30207538f34edd6744d49268e056921987e8c27f92373b43e

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 24fc1f2ee25c9abaa7eb6200a10fd0143f503941db6881dda8c28d8fcb9dbbcd
MD5 098d9b959d5c56577753e9e02797be77
BLAKE2b-256 719b6438013ac8c05945eeade7c79510fcd6059c43e078f33fd9c37ded93c2cd

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a90d5d1db3bd7832777f16da816384130c5fed9289fecac177d5066cc1ee4457
MD5 0c8576d024bc9f767c80d4e502dded5a
BLAKE2b-256 97ee0ec9731ec95086c34ff15f27b51e0bea12b22e82ddfbbf6d4552676cf640

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ff0a6f4e72f0a8b4d3fc189e5a06c1ed22896c1b29477081d11cabf0cc9a3099
MD5 29ffde2d250aa935c132c1ac75244b7a
BLAKE2b-256 b3f1c7f35504eb94dec68fc62aaacdc2b91ba2f94509542039d3b3402c94b598

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 39d61d7e0b82c539dd138a33145f6ce21d2505f03224ea997c9ea59eca2e88cd
MD5 efaab28e47c9c87ec9215769e6a8ac06
BLAKE2b-256 720d76efed63c05dc5a14e3f5fc18a713154ef416fcc840748a7d62e1c6b0ec2

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2909f4bb1d1bbb40a91537595171eca51aed567be27a6d93e1bb354613269ed7
MD5 63ed86c8b609a588e3d6debdaf177806
BLAKE2b-256 4f23fd53628341f6da41fb0205695fe344569979ee685dd8acfd7a6a6e920e33

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 718d4850e3ac59960423375a3b5fbd64d9d2c14da4e823173bbdbb2f23e1da0b
MD5 a666566ed06512f569e73d4eff2f7f5d
BLAKE2b-256 e9da491b24430a88621001b5d5e92eeedd0a3c57bc01f117441140163a5928c1

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 63847fdbb40741bad44e0904f619f3badc43c725542d0acb902a9d7c0d7b5273
MD5 ca9004a6d238c97aaa190733b725085e
BLAKE2b-256 9db7960c6de3b9585fe1ed403f61a31bb04cca270c4ff72628575157f6e0247d

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8a351a7d4d42bc663a527c0389ed923b1cfb8c70e888a29dd02bb590230c3fb5
MD5 2153263418219ee8c285f4bad0725bd0
BLAKE2b-256 63d0f104950eada0afc8c1620f7bde6066597ecf536866bb908e34f097bc882c

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: fuzzyrust-0.1.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 472.6 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for fuzzyrust-0.1.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a640dae201dc8496d33820c7f8d629f4d75a0c45691074a64fdeb891371da8a9
MD5 02bd15153331900bbbe1a178bca1a78a
BLAKE2b-256 28634f36865e7692fe392db0676d54330006f0735b8077b2504578189a3296a0

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6698cd95a5ac4af6a13c2dd35f484258f523106b57585ac23f7dea890183f5c1
MD5 bbeb2034a0f87d63aad0d5bc7a3936f7
BLAKE2b-256 baec871ca4bb9c9cb107b66f4e865d9b1b3807fe36ec70c20dc412136a7f6392

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 46a69ffa8bdb93060c158e953bee6069a713e62e725fc46ade7b48bc106f6fd7
MD5 8e0e87692a9590b1365f562a2ca65293
BLAKE2b-256 7774accbbdcfe89e2d9174f4079df29035c5fbafc79bc06a5637dd86487956e7

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a50fcc7a5a04f4b1b2c388207a5000e3d769dbb19ce8b48cbba5bb62f44a13a6
MD5 ffd3a9c814507240520a9cda07204b84
BLAKE2b-256 549ee9dd1f4e9591926fa992cfd9edfe20aaf2f001b9283169cedbc33a5f5729

See more details on using hashes here.

File details

Details for the file fuzzyrust-0.1.1-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fuzzyrust-0.1.1-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 16287e658165ed7c3ca6a0773d55b802c608ad1d4a74e03cc3f8f3e76707524d
MD5 db0dcdf04f471f40a59ec80f3e194f81
BLAKE2b-256 18603d3ed5b636520605482d5316e4f9ba15939f371e3a8f91ad56a0631365cd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page