当前位置: 首页 > news >正文

为什么Intel放弃Hyperscan:Vectorscan项目背后的开源反击战

为什么Intel放弃Hyperscan:Vectorscan项目背后的开源反击战

【免费下载链接】vectorscanA portable fork of the high-performance regular expression matching library项目地址: https://gitcode.com/gh_mirrors/ve/vectorscan

Vectorscan是 Intel 高性能正则表达式匹配库Hyperscan的开源分叉(fork)版本,一款可跨平台移植的高性能多模式正则匹配引擎。当 Intel 在 5.4 之后将 Hyperscan 转为闭源、并拒绝了社区的 ARM 移植请求后,Vectorscan 以 BSD 许可证发起了这场"开源反击战",让 ARM/Power 平台也能用上顶级性能的正则扫描能力。


一、背景:Hyperscan 是怎样的高性能正则引擎?

在讲"反击"之前,先说清楚 Hyperscan 有多能打:

  • 多模式并行匹配:一次扫描可同时匹配数万条正则表达式,而非常见引擎"一条表达式一个匹配器"的模式
  • 混合自动机技术:编译期把正则转换为多种引擎(NFA/DFA/字面量过滤器)协同工作,兼顾速度与内存
  • 流式匹配:支持跨数据块边界的流式扫描,天然适合网络流量分析
  • 典型用途:深度包检测(DPI)、入侵检测/防御系统(IDS/IPS)、安全网关的规则引擎

其核心能力分布在几个模块中:

模块职责
正则解析器解析 PCRE 语法的正则表达式,构建 NFA
NFA 图优化对 NFA 做压缩、等价化、区域切分等变换
匹配引擎群Rose、Truffle、McSheng、Sheng、LimEx、FDR 等多种专用引擎
流式与报告流状态管理、SOM 位置跟踪、匹配结果上报

对开发者来说,入口就是公开 API 头文件 src/hs.h 与 C 调用库 src/hs.cpp。

二、Intel 为什么放弃开源 Hyperscan?

1. 许可证"变脸":5.5 起闭源

这是最直接的导火索。根据项目 README.md 中引用的 Intel 官方说明:

The latest open-source version (BSD-3 license) of Hyperscan on Github is 5.4. Intel conducts continuous internal development and delivers new Hyperscan releases under Intel Proprietary License (IPL) beginning from 5.5 for interested customers.

也就是说:

  • ✅ 开源(BSD-3)版本永远停在 5.4
  • ❌ 5.5、5.6 的新版本改为Intel 专有许可证(IPL)闭源,需要联系 Intel 商务获取
  • ⚠️ 原有开源用户从此不再有安全更新和功能演进,且面临许可证风险

开源时代的完整变更记录见 CHANGELOG.md。

2. ARM 移植请求被拒

Vectorscan 的起点其实是一次"善意的尝试":社区开发者想把 Hyperscan 移植到 ARM(NEON/SVE 指令集),并向 Intel 提交了 PR,但遭到拒绝(至少短期内不会合并)。

Hyperscan 的引擎代码大量依赖 Intel 的 SIMD 优化,ARM 服务器(如 AWS Graviton、各类国产化芯片)此前根本没有对等的高性能正则库可选。

三、Vectorscan:一场面向多架构的开源反击

Vectorscan 的做法很务实:fork 最后一个开源版本 5.4,保持 API/ABI 兼容,同时彻底走向多架构

核心承诺

  • 🔓坚持 BSD 许可证,并承诺保持开源(见 LICENSE)
  • 🔗100% 兼容 Hyperscan 5.4 的 API 与 ABI,现有 Hyperscan 用户可低成本切换;但明确不追赶 5.5/5.6 的闭源新 API
  • ⚡ 不墨守成规:凡认为能提升性能或可移植性,就大胆重构(例如抽象掉所有 Intel 专属#ifdef

多架构支持进展(截至 5.4.12)

平台状态
x86(SSE4.2/AVX2/AVX512)✅ 完整支持,含 Fat Runtime
ARM NEON/ASIMD(aarch64)✅ 100% 功能完整,支持 Fat Runtime
Power VSX(ppc64le)✅ 100% 功能完整
ARM SVE/SVE2🚧 已启用构建,持续完善中
无 SIMD 平台🆕 引入 SIMDe 模拟后端(5.4.12 起)

截至 2025 年的 5.4.12 版本,官方 CI 已对200 多种配置组合做回归测试,覆盖 Linux(x86/Arm/Power)、FreeBSD 14、macOS 14+(含 Apple M1/M2/M3)。

四、Vectorscan 安装与使用:新手最快上手指南

一键安装(Debian/Ubuntu)

sudo apt install libvectorscan5 # 运行库 sudo apt install libvectorscan-dev # 开发包

Fedora 用户可用dnf install vectorscan vectorscan-devel;Arch 有 AUR 包可用。

源码编译:CMake 三步走

git clone https://gitcode.com/gh_mirrors/ve/vectorscan cd vectorscan && mkdir build && cd build cmake ../ && make -j$(nproc)

常用 CMake 选项(详见 README.md):

  • -DBUILD_SHARED_LIBS=On:构建动态库
  • -DFAT_RUNTIME=On:Fat 运行时,一份库自适应 SSE/AVX/NEON 等多种指令集(x86 与 AArch64 Linux 可用)
  • -DBUILD_SVE2=On:启用 ARM SVE2 代码
  • -DBUILD_SIMDE_BACKEND=On:用 SIMDe 模拟 SSE4.2,让无 SIMD 平台也能编译运行

新手示例:从 30 行代码开始

项目自带三个由浅入深的示例(examples/):

  1. examples/simplegrep.c—— 极简版 grep:单模式编译、块模式扫描、scratch 内存管理,演示最小完整用法
  2. examples/pcapscan.cc—— 扫描网络抓包文件,演示多模式编译与流式匹配
  3. examples/patbench.cc—— 找出规则集中"最烧性能"的正则表达式

配套工具链同样齐全:

  • 性能基准:tools/hsbench/
  • 功能自检:tools/hscheck/
  • 数据库转储:tools/hsdump/
  • 跨引擎正确性碰撞测试:tools/hscollider/

完整 API 参考文档位于 doc/ 目录(含编译指南、运行时接口、序列化等章节)。

五、源码导读:Vectorscan 核心模块在哪里?

想深入源码的读者,可以从这几个路径入手:

  • 公开 API 与运行时分发:src/hs.h、src/hs_runtime.h、src/dispatcher.c
  • NFA 引擎群:src/nfa/(LimEx、Truffle、Sheng、McSheng、Shufti、Vermicelli 等,按 x86/arm/ppc64le 分子目录)
  • Rose 字节码引擎:src/rose/,Hyperscan 的"主力"解释器引擎
  • FDR 字面量过滤器:src/fdr/,Teddy 算法家族,先筛掉不可能匹配的数据
  • NFA 图构建与优化:src/nfagraph/
  • 正则语法解析:src/parser/
  • Chimera 库(Hyperscan 的编译产物加载库):chimera/
  • 测试与验证:unit/(含 GTest 单元测试集)

六、谁适合使用 Vectorscan?🎯

  • ARM 服务器上的安全/DPI 开发者:此前无高性能多模式正则引擎可选,现在有了
  • 依赖 Hyperscan 但被闭源卡住的项目:API/ABI 兼容 5.4,迁移成本接近于零
  • BSD 许可证洁癖用户:闭源 IPL 版本无法用于自由软件生态,Vectorscan 是合规替代
  • 嵌入式/异构硬件:借助 SIMDe 后端,理论上任何平台都能编译运行

七、总结

Intel 放弃开源 Hyperscan 是商业决策,但开源生态不会因此停摆。Vectorscan 用兼容的 API、BSD 许可证和真正的多架构支持证明了:当大厂关上门,社区可以打开一扇更大的门。对于 ARM/Power 平台的性能敏感型正则匹配需求,它已经是目前唯一活跃维护的开源高性能方案。⚡

【免费下载链接】vectorscanA portable fork of the high-performance regular expression matching library项目地址: https://gitcode.com/gh_mirrors/ve/vectorscan

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4225716.html

相关文章:

  • Java面试前,我建议你重点复习这几个核心知识点
  • 谷歌数据分析 V 笔记(二)
  • 2026年口碑出众的表型平台生产厂家盘点,值得你深入了解
  • 3步完成微信聊天记录导出全指南:免费永久保存为HTML和Word
  • 如何用 Cosmic Ray 的 cr-rate 诊断测试薄弱点:变异存活率分析完全教程
  • Paperless-ngx 完整上手指南:五步把纸质文件变成可搜索档案
  • 如何使用 DALL-E 2?
  • 2026年,揭秘宜昌市伍家岗区那些超好的差旅型酒店门店!
  • 朱雀三号首次陆地回收
  • 金融工程Financial Engineering Competition-2回归MSE优化
  • 银行模拟器,装x神器 吊打市面上所有模拟器,泡妹神器
  • 构建机器学习模型识别图像AI生成内容的检测
  • 中小团队的后端技术栈搭配:稳定、高效、易维护
  • TorchOpt API参考速查:从优化器到Transform的完整函数地图
  • 单靠死工资不够?这本《AI创富手册》教你用AI开启第二收入曲线
  • JobRadar:基于本地大模型的职位匹配评分与智能筛选指南
  • 推理增强工程实践:DeepSeek-Reasonix与esengine组合落地指南
  • 贪心算法的思路和典型例题
  • AI找矿实战:如何用机器学习圈定高纯石英靶区
  • Vue3数字输入框(InputNumber)
  • 基于MCP Server构建AI可查询的错误知识库:从协议到实践
  • MCP Server实践:AI错误诊断工具,让报错不再难懂
  • 来看界面控件DevExtreme如何实现数据表单的高效动态更新
  • AI网站构建器背后:结构化页面表示与生成链路解析
  • 基于高德API与异步Python构建智能选址AI Skill实战
  • Matlab数据导入实战:从格式兼容到内存优化
  • 数维杯B题建模思路1.0:数据沼泽中的最小可行闭环
  • Codex限流与配置故障排查:从429到config.toml修复指南
  • DeepSeek V4 Flash测评框架:性能、延迟与成本控制实战
  • Gemini反代API工程指南:密钥、协议转换与排查