Hyperscan for Python¶
python-hyperscan
is an unofficial CPython extension for
Intel's Hyperscan, the open source, high-performance multiple regex
matching library.
Quickstart¶
Building Hyperscan¶
See the official documentation for detailed installation instructions and dependencies.
The following should work for most use cases, once the prerequisite dependencies have been installed:
$ git clone https://github.com/intel/hyperscan.git
$ mkdir -p hyperscan/build
$ cd hyperscan
$ # PCRE1 (8.xx series) is required for Chimera support
$ wget -qO- https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz/download | tar xvz
$ git checkout v5.4.0
$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DBUILD_STATIC_AND_SHARED=ON \
-DFAT_RUNTIME=ON \
-DPCRE_SOURCE=../pcre-8.45 \
../
$ # Compile with all available cores:
$ # make -j $(( $(nproc) + 1 ))
$ make
$ sudo make install
Note: if you are building v5.4.0 and encounter undefined reference errors when linking, see intel/hyperscan#292 (and more specifically, this comment) for the fix. Per the maintainers, this will be fixed in the next Hyperscan release.
Installing python-hyperscan¶
Installing via pip is recommended:
$ pip install hyperscan
To build and install from source, using Poetry:
$ pip install poetry==1.4.2
$ git clone https://github.com/darvid/python-hyperscan.git
$ cd python-hyperscan
$ poetry install