Skip to main content

Search a string for multiple substrings at once

Project description

ahocorasick_rs: Quickly search for multiple substrings at once

ahocorasick_rs allows you to search for multiple substrings ("patterns") in a given string ("haystack") using variations of the Aho-Corasick algorithm.

In particular, it's implemented as a wrapper of the Rust aho-corasick library, and provides a faster alternative to the pyahocorasick library.

The specific use case is searching for large numbers of patterns (in the thousands) where the Rust library's DFA-based state machine allows for faster matching.

Found any problems or have any questions? File an issue on the GitHub project.

Quickstart

The ahocorasick_rs library allows you to search for multiple strings ("patterns") within a haystack. For example, let's install the library:

$ pip install ahocorasick-rs

Then, we can construct a AhoCorasick object:

>>> import ahocorasick_rs
>>> patterns = ["hello", "world", "fish"]
>>> haystack = "this is my first hello world. hello!"
>>> ac = ahocorasick_rs.AhoCorasick(patterns)

AhoCorasick.find_matches_as_indexes() returns a list of tuples, each tuple being:

  1. The index of the found pattern inside the list of patterns.
  2. The start index of the pattern inside the haystack.
  3. The end index of the pattern inside the haystack.
>>> ac.find_matches_as_indexes(haystack)
[(0, 17, 22), (1, 23, 28), (0, 30, 35)]
>>> patterns[0], patterns[1], patterns[0]
('hello', 'world', 'hello')
>>> haystack[17:22], haystack[23:28], haystack[30:35]
('hello', 'world', 'hello')

find_matches_as_strings() returns a list of found patterns:

>>> ac.find_matches_as_strings(haystack)
['hello', 'world', 'hello']

Additional configuration

Match kind

There are three ways you can configure matching in cases where multiple patterns overlap. For a more in-depth explanation, see the underlying Rust library's documentation of matching.

Assume we have this starting point:

>>> from ahocorasick_rs import *

MATCHKIND_STANDARD (the default)

This returns the pattern that matches first, semantically-speaking. This is the default matching pattern.

>>> ac AhoCorasick(["disco", "disc", "discontent"])
>>> ac.find_matches_as_strings("discontent")
['disc']
>>> ac = AhoCorasick(["b", "abcd"])
>>> ac.find_matches_as_strings("abcdef")
['b']

In this case disc will match before disco or discontent.

Similarly, b will match before abcd because it ends earlier in the haystack than abcd does:

>>> ac = AhoCorasick(["b", "abcd"])
>>> ac.find_matches_as_strings("abcdef")
['b']

MATCHKIND_LEFTMOST_FIRST

This returns the leftmost-in-the-haystack matching pattern that appears first in the list of given patterns. That means the order of patterns makes a difference:

>>> ac = AhoCorasick(["disco", "disc"], matchkind=MATCHKIND_LEFTMOST_FIRST)
>>> ac.find_matches_as_strings("discontent")
['disco']
>>> ac = AhoCorasick(["disc", "disco"], matchkind=MATCHKIND_LEFTMOST_FIRST)
['disc']

Here we see abcd matched first, because it starts before b:

>>> ac = AhoCorasick(["b", "abcd"], matchkind=MATCHKIND_LEFTMOST_FIRST)
>>> ac.find_matches_as_strings("abcdef")
['abcd']
MATCHKIND_LEFTMOST_LONGEST

This returns the leftmost-in-the-haystack matching pattern that is longest:

>>> ac = AhoCorasick(["disco", "disc", "discontent"], matchkind=MATCHKIND_LEFTMOST_LONGEST)
>>> ac.find_matches_as_strings("discontent")
['discontent']

Overlapping matches

You can get all overlapping matches, instead of just one of them, but only if you stick to the default matchkind, MATCHKIND_STANDARD:

>>> from ahocorasick_rs import AhoCorasick
>>> patterns = ["winter", "onte", "disco", "discontent"]
>>> ac = AhoCorasick(patterns)
>>> ac.find_matches_as_strings("discontent", overlapping=True)
['disco', 'onte', 'discontent']

Trading memory for speed

If you use find_matches_as_strings(), there are two ways strings can be constructed: from the haystack, or by caching the patterns on the object. The former takes more work, the latter uses more memory if the patterns would otherwise have been garbage-collected. You can control the behavior by using the store_patterns keyword argument to AhoCorasick().

  • AhoCorasick(..., store_patterns=None): The default. Use a heuristic (currently, whether the total of pattern string lengths is less than 4096 characters) to decide whether to store patterns or not.
  • AhoCorasick(..., store_patterns=True): Keep references to the patterns, potentially speeding up find_matches_as_strings() at the cost of using more memory. If this uses large amounts of memory this might actually slow things down due to pressure on the CPU memory cache, and/or the performance benefit might be overwhelmed by the algorithm's search time.
  • AhoCorasick(..., store_patterns=False): Don't keep references to the patterns, saving some memory but potentially slowing down find_matches_as_strings(), especially when there are only a small number of patterns and you are searching a small haystack.

Implementation details

  • The underlying Rust library supports two implementations, one oriented towards reducing memory usage and construction time (NFA), the latter towards faster matching (DFA). The Python wrapper only exposes the DFA version, since expensive setup compensated by fast batch operations is the standard Python tradeoff.
  • Matching releases the GIL, to enable concurrency.
  • Not all features from the underlying library are exposed; if you would like additional features, please file an issue or submit a PR.

Benchmarks

As with any benchmark, real-world results will differ based on your particular situation. If performance is important to your application, measure the alternatives yourself!

Longer strings and many patterns

This benchmark matches ~4,000 patterns against lines of text that are ~700 characters long. Each line matches either zero (90%) or one pattern (10%).

Higher is better; ahocorasick_rs is much faster in both cases.

find_matches_as_strings or equivalent Operations per second
ahocorasick_rs longest matching 436,000
pyahocorasick longest matching 65,000
ahocorasick_rs overlapping matching 329,000
pyahocorasick overlapping matching 76,000

Shorter strings and few patterns

This benchmarks matches ~10 patterns against lines of text that are ~70 characters long. Each line matches ~5 patterns.

Higher is better; again, ahocorasick_rs is faster for both, though with a smaller margin.

find_matches_as_strings or equivalent Operations per second
ahocorasick_rs longest matching 1,930,000
pyahocorasick longest matching 1,120,000
ahocorasick_rs overlapping matching 1,250,000
pyahocorasick overlapping matching 880,000

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

ahocorasick_rs-0.13.0.tar.gz (61.5 kB view details)

Uploaded Source

Built Distributions

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

ahocorasick_rs-0.13.0-cp311-none-win_amd64.whl (192.9 kB view details)

Uploaded CPython 3.11Windows x86-64

ahocorasick_rs-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (624.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (592.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.13.0-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (558.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)macOS 10.9+ x86-64macOS 11.0+ ARM64

ahocorasick_rs-0.13.0-cp311-cp311-macosx_10_7_x86_64.whl (291.1 kB view details)

Uploaded CPython 3.11macOS 10.7+ x86-64

ahocorasick_rs-0.13.0-cp310-none-win_amd64.whl (192.9 kB view details)

Uploaded CPython 3.10Windows x86-64

ahocorasick_rs-0.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (624.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (592.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.13.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (558.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)macOS 10.9+ x86-64macOS 11.0+ ARM64

ahocorasick_rs-0.13.0-cp310-cp310-macosx_10_7_x86_64.whl (291.1 kB view details)

Uploaded CPython 3.10macOS 10.7+ x86-64

ahocorasick_rs-0.13.0-cp39-none-win_amd64.whl (193.2 kB view details)

Uploaded CPython 3.9Windows x86-64

ahocorasick_rs-0.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (624.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (592.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.13.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (559.2 kB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)macOS 10.9+ x86-64macOS 11.0+ ARM64

ahocorasick_rs-0.13.0-cp39-cp39-macosx_10_7_x86_64.whl (291.4 kB view details)

Uploaded CPython 3.9macOS 10.7+ x86-64

ahocorasick_rs-0.13.0-cp38-none-win_amd64.whl (193.5 kB view details)

Uploaded CPython 3.8Windows x86-64

ahocorasick_rs-0.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (624.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.13.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (593.0 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.13.0-cp38-cp38-macosx_10_7_x86_64.whl (296.4 kB view details)

Uploaded CPython 3.8macOS 10.7+ x86-64

ahocorasick_rs-0.13.0-cp37-none-win_amd64.whl (193.5 kB view details)

Uploaded CPython 3.7Windows x86-64

ahocorasick_rs-0.13.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (624.7 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.13.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (593.2 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.13.0-cp37-cp37m-macosx_10_7_x86_64.whl (296.5 kB view details)

Uploaded CPython 3.7mmacOS 10.7+ x86-64

File details

Details for the file ahocorasick_rs-0.13.0.tar.gz.

File metadata

  • Download URL: ahocorasick_rs-0.13.0.tar.gz
  • Upload date:
  • Size: 61.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for ahocorasick_rs-0.13.0.tar.gz
Algorithm Hash digest
SHA256 de7fd9643a41f223d15a9d42b9e2c7ccac05b33177533b10bb4af02eab70057b
MD5 45d4d26595df5abe2e25e9c1f05dfd5c
BLAKE2b-256 96acb96d9fb174a91c90d17196107a2dfc5c22e781f79279f779fe6160017d13

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 5a2b5ffa45cff1e437a41e09626b5eaad99ca17bf18719128314190d0b77c4e9
MD5 c55560befee4ff2426cfca493e7e22e0
BLAKE2b-256 2af47111853c59e12e3f35288fe05a577188d73d8bfd7f8ef0b0ab8f720233a3

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 76ded846fd9809e33c6eeb3e4e88d69d57a8ecc4f27e8492a673750ef5d3a42e
MD5 78570aa0666224a7ad49449ed7e0eee4
BLAKE2b-256 dc6293dc5ec1bf1c2db100b9b1e9868bdb3fc90b0b0b371296ef93720506e35c

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e05f3bda236657677c876a37085fbf2686ad119edb81e6cd00f78dcf503671cb
MD5 b1d812a4f623115c9561fa1c4b872432
BLAKE2b-256 83ea1df98d88337fb890028442769740dcfb6df380f2f05eb1a09ad238daf6b0

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 1fbf67708da1be536ee5918f4dc24c5b8c6d77761d51b8e996d73210f636161f
MD5 01de7a08fc49179e88a54c74db1d286a
BLAKE2b-256 c2afe08dca21321c3488d54856abb741ea8d40bb402a5e5e1d677ab8108c5142

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp311-cp311-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp311-cp311-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 33f4cd8232a1ae48639b02c47fc1905dcb10fe027ccbd1c1c55dad57e648d185
MD5 38aa606790bb1d00821f3155c1bef81d
BLAKE2b-256 1f971b9282cf590ebc093ef0c2e2412761ea479bfe639ad5ef5817163e91cb43

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp310-none-win_amd64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 cc3b454a7fd1f0e99e0233269f624095a2114bc77ce38cac90a21bc98a4c0df8
MD5 8dd2d6067bbdc1fd4b1573869b920b60
BLAKE2b-256 3f0f5a0e620487bedcc0eab17b1c899dc12cfab1c63f11592ae1f295e1114ee3

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d4cc754e162ab4e69ecd472e7d139150ab02dfcdfbb1bc93ada25e79ccd0bdaa
MD5 64c5bac2440012d4635bedaaf82ca266
BLAKE2b-256 2b5d0281ab6e13f05e71cadc943c42a0b2e91c1fc639e93b6bb710e6ff656e6d

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b5ff558e454feed199f61dc1d4651ce49f3c6daa8fd3143afa771fd1466c4622
MD5 58b79e4f628d25544bfde98d2d753023
BLAKE2b-256 ba0b8744acfacc7111e6111aa1de3cd34ffd0ee65f64ff5d2eaf0a3910aab4a9

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 fad0c795002b8497dc4d9d7fb946f78bf6b59b90187cab50ffa324775eb3ef36
MD5 779e2ff71ce7f54758d29ebf3d506452
BLAKE2b-256 d1659deec240fcda3fd8adc49ad4a9b5d9b487b010089a4f1162c280ec3e97b6

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp310-cp310-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp310-cp310-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 75549da07349653206fe2b34562e1e8b56b926dd42fe70b4562046fab45e4101
MD5 e98dd59d6d19c73ba3f90591c8d24e63
BLAKE2b-256 7b39709f3573fe8a789ef81d436df2bbd242b569e59a407ddc2f497029cbaa22

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp39-none-win_amd64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 42043c03b5a4cf77cae50ce444b8333f5d674fa6fe855831661027265f7b40c5
MD5 ef990575ec5a6735379b2b93948c5033
BLAKE2b-256 22a380da717f09432d9d4ee82ea66104d6f2383969b754bfc5b4c58baebd5139

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 26db4924407cc6db0ee6fd93c7c1e273601c536dd6b9bd132bfef8ee1a24c5e4
MD5 5a23edf43fc3601d36e0c532ad63b7f1
BLAKE2b-256 9bf75df63de6aa963979522340daebe0d78d7098f1fba4fc653c25b1528b5897

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 df0ae79f8f990ca90c7df3d22ceb01bb3d12196df8bea02e103b430df3789027
MD5 6acd2b8185489f033f0b45e95ce06c13
BLAKE2b-256 29340dcabf929e2ec0db465dc29a129bceb3adeee7e22a440e43a59475b2d8f9

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 37b2847ffa197eb1b794041448506fed88ffc6c982c860dbf541c398d8cc5efa
MD5 4a326db6e6a3a7ffc01425145772d1c8
BLAKE2b-256 1c4c17672cc03fc0391580d4fbcc90052ff2ed6406ed329a1e260b543ad0f02c

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp39-cp39-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp39-cp39-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 e574aafaca5af32f08e2d110afa8cdb9390daca1a47531d281618a0170d8138f
MD5 2359d4a7e31a0c0b624b710f0a583d9b
BLAKE2b-256 7f44c6114c19993a47772570eed449bc23fea48e45f00a070daab961e9f7ede2

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp38-none-win_amd64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 53f7ebfe884646cb471ec787f6a3d10e76d8fa15b6df974232a037412badd90d
MD5 483afe81e2a8f464ff016386412b4e09
BLAKE2b-256 2090be8580b2d95b91b5a70c376722b198a4daf3a9fbde66773291b70482e671

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 200b88bc39bd545754974658a5e280df9af2c340395eddf3ea8d6bd536425686
MD5 a417b5e9dcefdc42894187bf71d7f9e1
BLAKE2b-256 b472734918de191b4e2f96612aa5c77098749f252c45ef58b9fc5b3b3266342d

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5205b5b8581f75ddf0eaaef5af5829937fe4033ce3ef0228091527f9dd4baca3
MD5 52fbcda2b68ad9e07dca948c061c24a7
BLAKE2b-256 859a680ec427b3021edc0ea66864dd338cd15cae1a30490798c404da217999d9

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp38-cp38-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp38-cp38-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 3b2e207a591abe718ac4e9913dc66948f4d9bd16925c1a648a3ec9def402615b
MD5 4f6487784433e851ecb9c97b97b1e62d
BLAKE2b-256 6e8486dcb602de7ef3f94ee045524980ccd6330ac72d3832fe7189d6f1173c9e

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp37-none-win_amd64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp37-none-win_amd64.whl
Algorithm Hash digest
SHA256 31b7d766bc5c0fa514faca38ea30962eb4337690d73277ebea00286bd271960f
MD5 1c1347d7135d97335acde9030ef1e4d7
BLAKE2b-256 f40ee4ce8b3debc556bb13e399b5f7fd7d729132def0629794e3ad33b525e95a

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0cd001d123911f65f15102b6fe67585992849ef3ca450e9fd0463449523b9d22
MD5 afcf544406fd76b96068f4f9cc9a915c
BLAKE2b-256 1a74bf871e1cf7000b937bbd2be2102eb9ee56cdba67b2eae3c0e923c792da2f

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c357d01b7e59ac96691c68606809c5b5d13c9584a7944e7ea84d139673e0b402
MD5 b1ac9e3561c9ad54c0817f903942a93b
BLAKE2b-256 7ebace4228b70b279928b320b2272afa3dc4ebdd9ea38f121a3b54c0896a8bb8

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.13.0-cp37-cp37m-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.13.0-cp37-cp37m-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 90e6ff4d041ab398e09faf144f8bd1f3e2fbeaee8d48f62ecb6df0be2f026fff
MD5 9122970766a5da632e1de748bd995fcd
BLAKE2b-256 428fb574ce9a69bfeeb2f095d22099de79c0040c59362723013736db0c887858

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