Python bindings for Hyperscan.


Keywords
regex, hypercan, hyperscan, python, python3, regexp, regular-expressions
License
MIT
Install
pip install hyperscan==0.7.7

Documentation

Hyperscan/Vectorscan for Python

GitHub Actions Workflow Status PyPI - Version PyPI - Downloads PyPI - Python Version PyPI - Wheel PyPI - License Read the Docs

A CPython extension for Vectorscan, an open source fork of Hyperscan, Intel's open source (prior to version 5.4), high-performance multiple regex matching library.

  • ✅ Binary manylinux-compatible wheels
  • ✅ Statically linked (no need to build Hyperscan/Vectorscan)
  • ✅ Chimera support

Installation

# 🪄 Installing libhs is NOT required, because python-hyperscan is statically linked
pip install hyperscan

Build Optimization

If you'd like to use Intel's Hyperscan rather than Vectorscan, or if you'd like to enable native CPU detection to build optimized non-FAT libraries (default off in Vectorscan), extending the manylinux-hyperscan Docker image used to build the binary wheels for this library should be fairly straightforward.

API Support

python-hyperscan currently exposes most of the C API, with the following caveats or exceptions:

  • No stream compression support.
  • No custom allocator support.
  • hs_expression_info, hs_expression_ext_info, hs_populate_platform, and hs_serialized_database_info not exposed yet.

See the documentation for more detailed build instructions.

Resources