Log Parse

v0.1.02026年9月26日 に追加サンプルデータ

syslog(RFC 3164 / 5424)と一般的な Web サーバーのアクセスログを、構造化されたレコードに変換します。

サンプルデータです。この数値は仮のもので、実測ではありません。

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

この数値は仮のものです。 まだ計測していないため、実際の結果として読まないでください。この部品のレジストリファイルには "sample": true が付いています。

ベンチマーク

サンプルデータ

入力サイズごとに kura-rs(Rust)と re を比べています。 計測したすべての入力サイズで速い。最大 20× 速い。

この数値は仮のものです。 まだ計測していないため、実際の結果として読まないでください。この部品のレジストリファイルには "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