NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1534 most downloaded on PyPI
pyahocorasick is a fast and memory efficient library for exact or approximate multi-pattern string search. With the ``ahocorasick.Automaton`` class, you can find multiple key string occurrences at once in some input text. You can use it as a plain dict-like Trie or convert a Trie to an automaton for efficient Aho-Corasick search. And pickle to disk for easy reuse of large automatons. Implemented in C and tested on Python 3.6+. Works on Linux, macOS and Windows. BSD-3-Cause license.
Last release 5 months ago
27 Apr 2026
Release timing varies
gaps range from 9 days to 2.0 years
Nearly every release is documented
notes for 29 of 30 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
32 releases · first in 2014
Test linux arm support by @AyanSinhaMahapatra in #217
Full Changelog: v2.3.0...v2.3.1
One column per quarter.
Replace deprecated macos-13 runners with macos-15 by @AyanSinhaMahapatra in #213
Full Changelog: v2.2.0...v2.3.0
Drop support for Python 3.9. Use older version for pre-built wheels. Note that it may work on these older versions, we are just no longer supporting and testing these Python versions, as this is end of life
Add support for Python 3.14 and update CI & release scripts https://github.com/WojciechMula/pyahocorasick/pull/194
This is a minor release with a couple bugfixes and support for python3.13 Also drops python3.8 support.
This is a minor release with a couple bugfixes and support for python3.13
Also drops python3.8 support.
Full Changelog: 2.1.0...v2.2.0
Drop support for Python 3.8. Use older version for pre-built wheels. Note that it may work on these older versions, we are just no longer supporting and testing these Python versions, as this is end of life
Add support for Python 3.13 and update CI scripts https://github.com/WojciechMula/pyahocorasick/pull/194
Supports build pyahocorasick with GCC 15.0.1 https://github.com/WojciechMula/pyahocorasick/pull/201
Fix iter-long method https://github.com/WojciechMula/pyahocorasick/pull/187 https://github.com/WojciechMula/pyahocorasick/pull/196
Drop support for Python 3.6 and 3.7. Use older version for pre-built wheels. Note that it may work on these older versions, we are just no longer supp
Drop support for Python 3.6 and 3.7. Use older version for pre-built wheels. Note that it may work on these older versions, we are just no longer supporting and testing these Python versions
Add support for Python 3.12
Refix typos. by @grrrrrrrrr in #163
Full Changelog: 1.4.4...2.0.0
Drop support for Python 2
Drop support for 32 bits OSes
Re-organize code such that sources are under src/, utilities under etc/ and tests are under tests/
Use pytest for testing and streamline tests to use a more conventional Python approach
Build more compatible Linux wheels using "ci-build-wheel"
Refix typos. by @grrrrrrrrr in #163
Full Changelog: 1.4.4...2.0.0b1
Full Changelog : 1.4.3...1.4.4
Full Changelog: 1.4.3...1.4.4
Minor rebuild to ensure Windows wheel documentation is correct ReST.
Use cibuildwheel to tests and build wheels on many OSes (with GitHub actions)
Use cibuildwheel to tests and build wheels on many OSes (with GitHub actions)
Update supported Python versions. We cannot support what we cannot test: - Drop official support for Python 2.7.
Older version still run on Python 2.7+
Ensure that we compile with Python 3.10 and plan for 3.11
Set minimum supported version of Python to 3.6
Run tests in CI on 3.6, 3.7, 3.8, 3.9 and 3.10
Add method iter_long, that performs the modified Aho-Corasick search procedure matching the longest words from set.
Add method iter_long, that performs the modified Aho-Corasick search procedure matching the longest words from set.
Add method iter_long, that performs the modified Aho-Corasick search procedure matching the longest words from set.
Add method iter_long, that performs the modified Aho-Corasick search procedure matching the longest words from set.
Change internal trie representation thanks to that performance of common operation is 1.5 - 2.5 times faster. Details are presented in https://github.
Change internal trie representation thanks to that performance of common operation is 1.5 - 2.5 times faster. Details are presented in https://github.com/WojciechMula/pyahocorasick/pull/107 Warning: this change breaks compatibility of pickle and save() format, this won't be possible to load files created in the previous version.
Add alternative pickling mechanism save()/load, which requires less memory than the standard pickle solution (issue #102)
Add alternative pickling mechanism save()/load, which requires less memory than the standard pickle solution (issue #102)
- Fix manifest file
Fix manifest file
Add support for tuples of ints to iter() (by Frankie Robertson)
Add support for tuples of ints to iter() (by Frankie Robertson)
Fix pickling memory leak (issue #62)
Reworked pickling code
Fix pickling crash (issue #68)
Fix pickling memory leak (issue #62)
Fix documentation (by Philippe Ombredanne)
Fix several latent bugs and problems
Fix handling of unicode in Python 3 (by Frankie Robertson)
Fix handling of unicode in Python 3 (by Frankie Robertson)
Fix documentation typos (by Sylvain Zimmer)
Fix documentation typos (by Sylvain Zimmer)
Add ability to skip white spaces in the input strings (by @gladtosee; issue #84)
Add link to Python implementation from Abusix (by Frederik Petersen)
Fix memory leak (issue #81)
Add link to Python implementation from Abusix (by Frederik Petersen)
Fix unit tests (by Renat Nasyrov)
Minor documentation fixes (by Edward Betts)
Minor documentation fixes (by Edward Betts)
Some internal improvements
Nothing published for this version
Fix PyPI building (by Philippe Ombredanne; issue #71)
Fix PyPI building (by Philippe Ombredanne; issue #71)
Fix handling of UCS2-encoded string (issue #53)
Fix handling of UCS2-encoded string (issue #53)
Fix pickling error
Several minor fixes and corrections to documentation and infrastructure (thanks to: Jan Fan, @blackelk, David Woakes and Xiaopeng Xu)
Fix URL in documentation (by Philippe Ombredanne)
Fix URL in documentation (by Philippe Ombredanne)
Rewrite documentation and fix PyPI presentation (by Philippe Ombredanne)
Rewrite documentation and fix PyPI presentation (by Philippe Ombredanne)
Rewrite documentation continued (by Philippe Ombredanne)
Rewrite documentation continued (by Philippe Ombredanne)
Rewrite documentation, setup readthedocs.io__ page (by Philippe Ombredanne)
Rewrite documentation, setup readthedocs.io page (by Philippe Ombredanne)
Make the module compilable in Windows using MSVC compiler (issue #11)
Fix get() method that crashed when trie was empty (issue #22)
Fix pickling problem (issue #26)
Add __sizeof__() method (issue #25)
Support for Python 2 (with help from Philippe Ombredanne; issue #12)
Support for Python 2 (with help from Philippe Ombredanne; issue #12)
Fix memory leak (by Jonathan Grs; issue #9)
Fix memory leak (by Jonathan Grs; issue #9)
Fix range parsing (by Jonathan Grs; issue #10)
Fix range parsing (by Jonathan Grs; issue #10)
Fix pickling on 64-bit machines (issue #20)
Update documentation regarding wildcards
Fix Unicode handling during automaton build (issue #8)
Fix Unicode handling during automaton build (issue #8)
Fix some 64-bit code issues (issue #5)
Fix documentation (thanks to Pastafarianist)
The first version available through PyPi
The first version available through PyPi
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →