Skip to content

darvid/python-hyperscan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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