#log-parser #log-parsing #log-clustering

tipping-rs

A Rust implementation of Token Interdependency Parsing (Tipping) algorithm

6 releases

0.2.1 Sep 21, 2025
0.2.0 Aug 4, 2025
0.1.4 Mar 2, 2024
0.1.2 Feb 16, 2024

#1034 in Algorithms

Download history 56/week @ 2025-07-29 50/week @ 2025-08-05 6/week @ 2025-08-12 1/week @ 2025-08-19 1/week @ 2025-08-26 155/week @ 2025-09-16 30/week @ 2025-09-23 12/week @ 2025-09-30 1/week @ 2025-10-07

285 downloads per month

Custom license

47KB
1K SLoC

Tipping - Token Interdependency Parsing

Tests

Tipping is a high-performance and flexible log parsing library. It leverages a rule based tokenizer to extract subtokens and interdependencies between them to cluster log messages and predict their templates and parameter masks. It is built with speed and efficiency in mind, capable of utilizing all available processor cores to accelerate the parsing process. At its core, Tipping is written in Rust to ensure maximum performance and stability while offering Python bindings for ease of use and integration into log analysis researches and projects.

Installation

cargo add tipping-rs

Usage

Load your log messages into a list of strings (Vec<String>) and:

    let msgs: Vec<String>;
    let (event_ids, masks, templates) = tipping_rs::Parser::default()
        .with_threshold(threshold)
        .with_special_whites(special_whites)
        .with_special_blacks(special_blacks)
        .with_symbols(symbols)
        .with_filter_alphabetic(filter.alphabetic)
        .with_filter_numeric(filter.numeric)
        .with_filter_impure(filter.impure)
        .compute_templates()
        .compute_masks()
        .parse(msgs);

Cite

will be filled upon publication

Dependencies

~8.5MB
~144K SLoC