2 个版本
0.1.2 | 2024年1月20日 |
---|---|
0.1.1 |
|
0.1.0 | 2023年12月21日 |
在 构建工具 中排名 #195
每月下载量 30
6.5MB
141K SLoC
vectorscan-rs
概述
此包实现了对 https://github.com/Vectorcamp/vectorscan 分支的 https://github.com/intel/hyperscan 的最小 Rust 封装,Hyperscan 是一个高性能的正则表达式引擎。
这些 Rust 封装由 noseyparker 实现,这个库是为了我自己的个人使用而创建的。
此包从源代码构建 Vectorscan 的供应商副本。
先决条件
要构建此包,您需要 CMake。另外,如果您启用了 gen
功能,您还需要安装 Clang,以便 bindgen
可以生成对 Vectorscan 的原始 Rust 封装。
已在 x86_64 Linux 和 Intel 以及 ARM macOS 上进行测试。
实现说明
此包是从 https://github.com/vlaci/pyperscan 项目改编的,该项目使用 Rust 将 Hyperscan 暴露给 Python。
此处实现的封装只暴露了 Nosey Parker 所需要的 Vectorscan 的部分,具体来说,是基于块的匹配 API。其他各种 API(如基于流和向量的匹配)没有暴露。其他功能,如 Chimera PCRE 库、测试代码、基准代码和支持工具也已被禁用。
VectorScan 5.4.8 的源代码包含在 vectorscan
目录中。Boost 版本 1.83.0 的源代码也包含在 vectorscan/include/boost
目录中。
对 VectorScan 源代码进行了以下修改的原因
- 其基于 CMake 的构建系统被修改,以消除对
ragel
的构建时依赖 - 预编译了 4 个 Ragel
.rl
文件,并将其添加到源代码树中 - 其构建系统被修改,以允许禁用其他组件的构建
- 其构建系统被修改,以在所有情况下禁用
-Werror
这些修改没有表示为在构建时应用的显式补丁文件。相反,这些修改是直接对受控源树进行的。这是一种权宜之计,但如果需要对 vectorscan
源代码进行更多更改,则需要重新设计。
许可证
Vectorscan 在 3-clause BSD 许可证下发布。pyperscan 在 Apache License Version 2.0 或 MIT 许可证下发布。Boost 在 Boost License Version 1.0 下发布。