Hyperscan

Бесплатно
Открытый исходный код
Windows
Linux

Сайт: github.com/intel/hyperscan

Hyperscan — это высокопроизводительная библиотека для сопоставления нескольких регулярных выражений, разработанная компанией Intel. Она предназначена для эффективной обработки больших объёмов данных в реальном времени, что делает её особенно полезной в области глубокого пакетного анализа (DPI), систем обнаружения и предотвращения вторжений (IDS/IPS), а также в фаерволах и других сетевых приложениях. Библиотека использует гибридные автоматы для одновременного сопоставления множества регулярных выражений, обеспечивая высокую производительность и низкую задержку.

Hyperscan реализует собственный API на языке C и поддерживает синтаксис регулярных выражений, совместимый с популярной библиотекой PCRE. Она оптимизирована для работы на x86-платформах и использует инструкции SIMD (Single Instruction, Multiple Data) для ускорения обработки данных. Библиотека предоставляет гибкие возможности для компиляции и сканирования регулярных выражений, что позволяет эффективно интегрировать её в различные сетевые стеки и приложения.

  • Многопоточное сопоставление: поддерживает одновременное сопоставление десятков тысяч регулярных выражений.
  • Гибридные автоматы: использует комбинацию детерминированных (DFA) и недетерминированных (NFA) конечных автоматов для оптимизации процесса сопоставления.
  • SIMD-ускорение: применяет инструкции SIMD для параллельной обработки данных, что значительно повышает производительность.
  • Поддержка потоковой обработки: позволяет выполнять сопоставление регулярных выражений в потоках данных без необходимости загрузки всего содержимого в память.
  • Совместимость с PCRE: поддерживает синтаксис регулярных выражений, совместимый с библиотекой PCRE, что облегчает миграцию и интеграцию.
  • Открытый исходный код: распространяется под лицензией BSD, что позволяет свободно использовать и модифицировать библиотеку.
  • Гибкий API: предоставляет удобный интерфейс для компиляции и сканирования регулярных выражений, что упрощает интеграцию в различные приложения.
Подробнее