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
1回あたりの処理時間(短いほど良い)。
数値の表を見る
入力サイズ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