Multi-pattern Match

v0.1.0添加于 2026年9月26日示例数据

使用 Aho–Corasick 一次扫描匹配数千个模式,用于在日志和载荷中查找入侵指标(IOC)。

示例数据。这些数值仅为占位,并非实测结果。

cargo install kura-rs
kura add multi-pattern-match

将源码文件复制到你的项目中。此后代码完全归你所有。

如果其他工具已经安装了 kura 命令,请运行 cargo install kura-rs --bin kura-rs,并改用 kura-rs add。

use crate::parts::multi_pattern_match::Matcher;

let matcher = Matcher::new(&iocs);

for hit in matcher.find_all(&payload) {
    alert(hit.pattern, hit.offset);
}

验证

示例数据

使用差分测试与 pyahocorasick 2.1.0(Python)进行对照:向两个实现输入相同数据,并比较输出结果。

参考实现
pyahocorasick
Python 2.1.0
测试用例
3,000
差分测试
通过
2,997 / 3,000
3 个不一致
最近运行
2026年9月26日
UTC

以下数值仅为占位。 这些数值尚未经过实测,请勿当作真实结果。该组件在其 registry 文件中标记为 "sample": true。

基准测试

示例数据

在不同输入规模下对比 kura-rs(Rust)与 pyahocorasick。 在所有测量的输入规模下均更快,最高快 5.0×。

以下数值仅为占位。 这些数值尚未经过实测,请勿当作真实结果。该组件在其 registry 文件中标记为 "sample": true。

kura-rs (Rust)pyahocorasick
每次运行的耗时(越低越好)。
显示数据表
输入规模kura-rs (Rust)pyahocorasick加速比
1,0000.02 ms0.05 ms2.5×
10,0000.14 ms0.52 ms3.7×
100,0001.3 ms5.8 ms4.5×
1,000,00013 ms61 ms4.7×
10,000,000128 ms640 ms5.0×

文件

  • parts/multi_pattern_match/mod.rs

crate 依赖