Log Parse

v0.1.02026년 9월 26일 추가샘플 데이터

syslog(RFC 3164 / 5424)와 일반적인 웹 서버 접근 로그를 구조화된 레코드로 파싱합니다.

샘플 데이터입니다. 이 수치는 측정값이 아닌 임시 값입니다.

cargo install kura-rs
kura add log-parse

소스 파일 3개를 프로젝트에 복사합니다. 이후 코드는 여러분의 것입니다.

다른 도구가 이미 kura 명령을 설치했다면 cargo install kura-rs --bin kura-rs로 설치하고 kura-rs add를 사용하세요.

use crate::parts::log_parse::{parse_line, Format};

for line in reader.lines() {
    let record = parse_line(Format::Rfc5424, &line?)?;
    println!("{} {}", record.host, record.message);
}

검증

샘플 데이터

re 3.12 (Python)와(과) 골든 파일(으)로 대조했습니다. 두 구현에 같은 입력을 넣고 출력을 비교합니다.

참조 구현
re
Python 3.12
테스트 케이스
1,200
골든 파일
통과
1,200 / 1,200
모든 케이스 일치
마지막 실행
2026년 9월 26일
UTC

이 수치는 임시 값입니다. 아직 측정되지 않았으므로 실제 결과로 해석해서는 안 됩니다. 이 부품은 registry 파일에서 "sample": true(으)로 표시되어 있습니다.

벤치마크

샘플 데이터

다양한 입력 크기에서 kura-rs (Rust)와 re을(를) 비교합니다. 측정한 모든 입력 크기에서 더 빠름, 최대 20× 빠름.

이 수치는 임시 값입니다. 아직 측정되지 않았으므로 실제 결과로 해석해서는 안 됩니다. 이 부품은 registry 파일에서 "sample": true(으)로 표시되어 있습니다.

kura-rs (Rust)re
1회 실행당 소요 시간 (낮을수록 좋음).
데이터 표 보기
입력 크기kura-rs (Rust)re속도 향상
1000.03 ms0.4 ms13×
1,0000.21 ms3.9 ms19×
10,0002 ms39 ms20×
100,00020 ms395 ms20×
1,000,000196 ms3.96 s20×

파일

  • parts/log_parse/mod.rs
  • parts/log_parse/syslog.rs
  • parts/log_parse/access.rs

crate 의존성