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.

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, or alternatively search multiple bytes. For example, let's install the library:

$ pip install ahocorasick-rs

Searching strings

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)

You can construct a AhoCorasick object from any iterable (including generators), not just lists:

>>> ac = ahocorasick_rs.AhoCorasick((p.lower() for p in 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']

Searching bytes and other similar objects

You can also search bytes, bytearray, memoryview, and other objects supporting the Python buffer API.

>>> patterns = [b"hello", b"world"]
>>> ac = ahocorasick_rs.BytesAhoCorasick(patterns)
>>> haystack = b"hello world"
>>> ac.find_matches_as_indexes(b"hello world")
[(0, 0, 5), (1, 6, 11)]
>>> patterns[0], patterns[1]
(b'hello', b'world')
>>> haystack[0:5], haystack[6:11]
(b'hello', b'world')

The find_matches_as_strings() API is not supported by BytesAhoCorasick.

Choosing the matching algorithm

Match kind

There are three ways you can configure matching in cases where multiple patterns overlap, supported by both AhoCorasick and BytesAhoCorasick objects. 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 AhoCorasick, 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']

LeftmostFirst

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.LeftmostFirst)
>>> ac.find_matches_as_strings("discontent")
['disco']
>>> ac = AhoCorasick(["disc", "disco"], matchkind=MatchKind.LeftmostFirst)
['disc']

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

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

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

>>> ac = AhoCorasick(["disco", "disc", "discontent"], matchkind=MatchKind.LeftmostLongest)
>>> 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. Again, this is supported by both AhoCorasick and BytesAhoCorasick.

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

Additional configuration: speed and memory usage tradeoffs

Algorithm implementations: trading construction speed, memory, and performance (AhoCorasick and BytesAhoCorasick)

You can choose the type of underlying automaton to use, with different performance tradeoffs. The short version: if you want maximum matching speed, and you don't have too many patterns, try the Implementation.DFA implementation and see if it helps.

The underlying Rust library supports four choices, which are exposed as follows:

  • None uses a heuristic to choose the "best" Aho-Corasick implementation for the given patterns, balancing construction time, memory usage, and matching speed. This is the default.
  • Implementation.NoncontiguousNFA: A noncontiguous NFA is the fastest to be built, has moderate memory usage and is typically the slowest to execute a search.
  • Implementation.ContiguousNFA: A contiguous NFA is a little slower to build than a noncontiguous NFA, has excellent memory usage and is typically a little slower than a DFA for a search.
  • Implementation.DFA: A DFA is very slow to build, uses exorbitant amounts of memory, but will typically execute searches the fastest.
>>> from ahocorasick_rs import AhoCorasick, Implementation
>>> ac = AhoCorasick(["disco", "disc"], implementation=Implementation.DFA)

Trading memory for speed (AhoCorasick only)

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

  • Matching on strings releases the GIL, to enable concurrency. Matching on bytes does not currently release the GIL for memory-safety reasons, unless the haystack type is bytes.
  • 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!

That being said, I've seen ahocorasick_rs run 1.5× to 7× as fast as pyahocorasick, depending on the options used. You can run the included benchmarks, if you want, to see some comparative results locally. Clone the repository, then:

pip install pytest-benchmark ahocorasick_rs pyahocorasick
pytest benchmarks/

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.22.1.tar.gz (81.2 kB view details)

Uploaded Source

Built Distributions

ahocorasick_rs-0.22.1-cp313-none-win_amd64.whl (277.1 kB view details)

Uploaded CPython 3.13 Windows x86-64

ahocorasick_rs-0.22.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (814.1 kB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.22.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (772.4 kB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.22.1-cp313-cp313-macosx_10_12_x86_64.whl (402.0 kB view details)

Uploaded CPython 3.13 macOS 10.12+ x86-64

ahocorasick_rs-0.22.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (746.6 kB view details)

Uploaded CPython 3.13 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

ahocorasick_rs-0.22.1-cp312-none-win_amd64.whl (277.3 kB view details)

Uploaded CPython 3.12 Windows x86-64

ahocorasick_rs-0.22.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (814.5 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.22.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (772.9 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.22.1-cp312-cp312-macosx_10_12_x86_64.whl (402.6 kB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

ahocorasick_rs-0.22.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (747.7 kB view details)

Uploaded CPython 3.12 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

ahocorasick_rs-0.22.1-cp311-none-win_amd64.whl (275.6 kB view details)

Uploaded CPython 3.11 Windows x86-64

ahocorasick_rs-0.22.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (813.6 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.22.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (772.2 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.22.1-cp311-cp311-macosx_10_12_x86_64.whl (402.4 kB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

ahocorasick_rs-0.22.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (746.9 kB view details)

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

ahocorasick_rs-0.22.1-cp310-none-win_amd64.whl (275.5 kB view details)

Uploaded CPython 3.10 Windows x86-64

ahocorasick_rs-0.22.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (813.6 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.22.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (771.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.22.1-cp310-cp310-macosx_10_12_x86_64.whl (402.6 kB view details)

Uploaded CPython 3.10 macOS 10.12+ x86-64

ahocorasick_rs-0.22.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (747.5 kB view details)

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

ahocorasick_rs-0.22.1-cp39-none-win_amd64.whl (275.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

ahocorasick_rs-0.22.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (814.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.22.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (772.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.22.1-cp39-cp39-macosx_10_12_x86_64.whl (403.0 kB view details)

Uploaded CPython 3.9 macOS 10.12+ x86-64

ahocorasick_rs-0.22.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (748.1 kB view details)

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

ahocorasick_rs-0.22.1-cp38-none-win_amd64.whl (275.7 kB view details)

Uploaded CPython 3.8 Windows x86-64

ahocorasick_rs-0.22.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (814.2 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.22.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (772.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.22.1-cp38-cp38-macosx_10_12_x86_64.whl (403.1 kB view details)

Uploaded CPython 3.8 macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: ahocorasick_rs-0.22.1.tar.gz
  • Upload date:
  • Size: 81.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for ahocorasick_rs-0.22.1.tar.gz
Algorithm Hash digest
SHA256 f0fbc7c95b956e0d7df442b55b0089453613be6f5bf38204f05f121e9155201b
MD5 4035088fd89d4882dab4fdc5db13e475
BLAKE2b-256 a75167752819264a912a84689c4bda4492fbac68d5e194a1d6da3f8cb8d3f0f1

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp313-none-win_amd64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 39883d0fae36fd9403e99d13113eb3369d82646279d8749c44e667c3cf5c8bbb
MD5 75e7685b83d538c5fd86d4fbc8bd993c
BLAKE2b-256 ba05d7444af30a714f7614910413acdf79629bcba987d7f48a8c79d2f0650991

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b77d37a1820e7c39c312f2d6f3c7dd19ba4dd756e3858c6d503c09baa4bfdfee
MD5 fc103e36cea533812bc1793beb221fdc
BLAKE2b-256 c888b634162899cd973cf1ffe23f34831a66f8b6ca303b98e0f42cdaded42de4

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 37f0ca858459ccc33a5a36eaed14b33ee9963754aead9afb8459ca4b8d135db5
MD5 62a638ef2cd9e58c766cd94bc54c1243
BLAKE2b-256 425d7fd02ab130ac6478983ea7505757854fbf3c19dbbf00fbfce4789d8ee3eb

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cda3fabc2842edeb9f9b0a067268ae1d36acd7eb452985a3aaa6389de33ed7a5
MD5 3c7d65fc8965a6e33f2fd05ee47a663b
BLAKE2b-256 29a02bbe29ddda2e23912d265a6099fc359054a9b32cbe2f2cfbad4d916ea3ec

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 0bab16fbe4af87876e325003d2ddd565b25f695573bc1b1e9c1abcbab123f817
MD5 9cf4807bd6ee527714b82f9dc5218a8b
BLAKE2b-256 7de4e77d02938b524fd72ead6b35457a710c3ec19bd022bc99a2a7a76cbe4173

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp312-none-win_amd64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 5d7d8255de9ddbc34d76ad37fa9e8084e0cf96cea9a0cb1e32eaff00d9aacdf5
MD5 09beace73a907475f278ef454a0960eb
BLAKE2b-256 c3e57a4914aa07ad1ca80e9ff89080042cb3c1ce5bd1de7dc125643e51dbf20d

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6ec61793a94f88da6365bf3914b5d2df01a827e0a00d943a12cc5a82197a83d0
MD5 62ac5fe89f498d6043b3bd4b324fa93f
BLAKE2b-256 6c9148ca9409e77d01576a48b837d7c3e19efdab584f99e5bb588389555c113b

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 de9c745e32a4524bb6d9aa869111091a06e30aefb199188825e01af447d907d8
MD5 11e7f36e20b01d78076dad9e6ddf9345
BLAKE2b-256 fb5152e2449070f8d8b3cfa3dd9d9df31ee6bb6df48b5b19fda2fe63ee23ef50

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9ca7288b9567857cd32dc78b69966ab0741fcf60f33c1bb13ee51978ed497776
MD5 4a76876a67873d1d6366dc394b18574b
BLAKE2b-256 130fb511e38e3c1b3828848ccd709b85b4bc1a001d3bb2443eeef95aae6da01a

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 1ab9fe7ec9cce77b54b7c75039570e9b3cc010a54cea4495a631b77c80cabd39
MD5 bcfb520da83d0238c804fcf7142f8abb
BLAKE2b-256 acf0fe972e0e8a1b72255bca380a73d73bb9d8a389314496366c9878b3faaff9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 f1e1235ea53c00e19071d1e7dff65909c618816926f94b634e7191d42ee0046f
MD5 b28398f7ae74ab064c225c362bd8d809
BLAKE2b-256 61855f60de8b9c798c406149b7a99e6b5d888f7c9b14adea2dc620e98a8201d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e745a0775da22e4ac9d891a42171c0c042d7640328d6f054dc78a57feb2717a
MD5 431f7c8d2d5256877b6c433b25fd9065
BLAKE2b-256 9f3e3b713f6b5d470d3fc4293c6d2dd2c944e868b3b3f87fcc2caadff66d9932

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b1c7099d5ca73fa8eada4f70b828d54026f02b25ef4fc28de713d1815f697d8a
MD5 06709e351986b80df9c483e86a4aa040
BLAKE2b-256 aa59a209f3d6dcc06322f7af8665266f2910430eea1b4ea6078997e297807efe

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b018fa289663d5554af650d6ff8be6a47411f787de9db1b43aa39be023f6d370
MD5 693a22a39b614c49f9cd6aa9472fc73e
BLAKE2b-256 f392b438c508ff8b1c4054a67d6ed7f7afb60981a63dc8e8f6d337e03b8cb4b8

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 e369cede7682ed8ffad301918498a240df105783552976e1dd051bd9218e1c91
MD5 b4b2f5c90ad23ae335d40ee1d3c73428
BLAKE2b-256 3d5e1980c05cc2f4567ac8dbc295a472db432c045c5d702e84f0aee0ca678ca3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 b6feafc260a181eac470706dd5c8bf71f57c1c02cbc8da761cccc33615564621
MD5 bd64fc1e367a937aca70cac7eece5605
BLAKE2b-256 8e3070b2838f992770d5ed6f61da91c8ecf5a44288767894e5812e87fe4d3d96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bbb184c3e5b56dc8a0b595939048be94f6eff1908dc024070bea6390e8e70737
MD5 fa5eb986efa15faab7f3e3a1c6794585
BLAKE2b-256 5dda8b2e7acabf326dcae116efe64f0b5106c7e1e26e7a59ff57bd918f1ced8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d0d78155c9c15c4411d0c9e81386c2be76cd8337ea16b07e387e48128e54085c
MD5 61e3782045fc18d8ab47e56f6343c0eb
BLAKE2b-256 dac1512def63115bb4425be964e5993d275d07aa9c07ee5bcc7bf9f1ae102bfa

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5d682742cbc5cd6abee09c1af815539a6ee63a5cf99e3667560f258c5bb08c3c
MD5 957ad956eee3a09c2c1927eea01fcc1f
BLAKE2b-256 a3e0d4804abf82be9db743ad3e3c9ed4a75412f1415cb5648b8a95c156e77244

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 ba9ecf254545ba826a845cfca1242a4ef266e8f8d2523ecaa683a0d8576cd02c
MD5 e206572fe5a53794932781889e3ea3e8
BLAKE2b-256 36b6349eff2ada439713a519d4cfdeb8b0a60c2137a42968a65ac64672ba499b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 cf84ad526dcc5867979fec1b49752979ee451e7b461e03b860cfdb7a6656880f
MD5 e06727d7603b90d32b9034a0a26ebfdf
BLAKE2b-256 56e6ca726b7ef0a79180773a1859bc4c25b082519607c3a40dec4e633b7b49fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 abf94725fb976a0458634769b8cf9876cc3fb70586b78284f9335be5f5c292c0
MD5 93e872d208f1ee25ff27e47b52109ff8
BLAKE2b-256 002805df728811fa476bf9101fbc413b61505a7eb621094ef7ea489dfd854cfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 934bc472f6fffcbdaddbfee3ba221d28badedfa0f342c726437d3c2b5c069da7
MD5 43898cccd39b01b3870700ca19a1fcf3
BLAKE2b-256 2245a53d057bb68f31d89d523f8ffbd25f65edc2282c3d36a674a0f25f6977d1

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 df5ab268edf5b6dc2ce291103cab1ded7334ae06a1f3ce8b21bb5b76e9ca8942
MD5 0c8651948e46066ab540327051e24977
BLAKE2b-256 442fb5d7ec0d88dbaf7320a191b0c552bbfa21f8964f009d8d7c2fb8d7074856

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 3ebe3b5e960780ac05a69da5215bc8960377930345ad0500623f9510d72a2cb7
MD5 39d8c81b960820b5ff7b317e9393d803
BLAKE2b-256 acadc678f6530d9ba4f7966987a269c3429b06c9a8f3c6a2c4635e06be43bc0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 f46c499ebc5cd210ae7139cceeab78b8cdc4e25e2f497682d41051fcbdc822ed
MD5 85b0136c974389e87998e4228f510586
BLAKE2b-256 a2c307d48a2001ed0cb10b1210e5cd6a8da8680729a71c0319e529de96dadebc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9874e1067e1111167a4524aef59e3fcac58c6efaf9b9c26ebc2118349b389c2c
MD5 42fb08ec33f81ccdf5346ca2397e3d8b
BLAKE2b-256 cb74a3eb64f1f7e38ade6ffa95710c296821785510fc4f7079683f6713777acf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f65ddc18a1eea1577b902d08b27bbdf6817dc7eabfe8304436a93037581f15f9
MD5 539fa8b5702f435b4acee585523963f8
BLAKE2b-256 f205bb6fbfea6683cf8b35aba50212972a4220871356449d2e3ccabf44ca88d4

See more details on using hashes here.

File details

Details for the file ahocorasick_rs-0.22.1-cp38-cp38-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.22.1-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 85fb9a958641da10c76c2feba20217eb0196b03e0a0b29e7819221ecaae21b90
MD5 fff5bd2d032fe9be73abfdac78e3ad86
BLAKE2b-256 8a7d9a1135bdf34f5a4be8a31c706db67cf05c29177479b8dfdc1a82c06da061

See more details on using hashes here.

Supported by

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