Multi-pattern Match
v0.1.02026년 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,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