Multi-pattern Match
v0.1.02026年9月26日 に追加サンプルデータAho–Corasick 法で数千のパターンを1回の走査で照合します。ログや通信内容から侵害の痕跡(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
この数値は仮のものです。 まだ計測していないため、実際の結果として読まないでください。この部品のレジストリファイルには "sample": true が付いています。
ベンチマーク
サンプルデータ入力サイズごとに kura-rs(Rust)と pyahocorasick を比べています。 計測したすべての入力サイズで速い。最大 5.0× 速い。
この数値は仮のものです。 まだ計測していないため、実際の結果として読まないでください。この部品のレジストリファイルには "sample": true が付いています。
kura-rs (Rust)pyahocorasick
数値の表を見る
| 入力サイズ | kura-rs (Rust) | pyahocorasick | 倍率 |
|---|---|---|---|
| 1,000 | 0.02 ms | 0.05 ms | 2.5× |
| 10,000 | 0.14 ms | 0.52 ms | 3.7× |
| 100,000 | 1.3 ms | 5.8 ms | 4.5× |
| 1,000,000 | 13 ms | 61 ms | 4.7× |
| 10,000,000 | 128 ms | 640 ms | 5.0× |
ファイル
- parts/multi_pattern_match/mod.rs