#spell #lcs #log #parsing


Spell is a Streaming Parser for Event Logs using an LCS (Longest Common Subsequence)

3 releases

✓ Uses Rust 2018 edition

0.1.2 Jan 20, 2019
0.1.1 Jan 4, 2019
0.1.0 Dec 17, 2018

#65 in #parsing

Download history 15/week @ 2018-12-13 4/week @ 2018-12-20 23/week @ 2019-01-03 18/week @ 2019-01-10 16/week @ 2019-01-17 74/week @ 2019-01-24 39/week @ 2019-01-31 8/week @ 2019-02-07

24 downloads per month


564 lines


Crates.io Build Status Documentation License

spell-rs is a Spell implementation in Rust.

Spell is a Streaming Parser for Event Logs using an LCS (Longest Common Subsequence).

The minimum Rust version is 1.31 due to the use crate:: syntax.


Min Du and Feifei Li. Spell: Streaming Parsing of System Event Logs. 2016 IEEE 16th International Conference on Data Mining (ICDM) pp. 859-864, Barcelona, Spain, December, 2016. DOI: 10.1109/ICDM.2016.0103. https://ieeexplore.ieee.org/document/7837916


Spell ingests log lines one by one and build up a list of formatting strings that can be used to analyze the logs. For example (see presentation slides, page 19), given the two log entries:

Temperature (41C) exceeds warning threshold
Temperature (42C, 43C) exceeds warning threshold

the LCS is:

Temperature * exceeds warning threshold

which can then be used to analyze the logs.

As of cedf57a7a73b1052de937d13150c2b9d8a03237c, the Rust implementation gives the exact same results as the Java one.

Other Implementations


This project is licensed under either of

at your option.


~25K SLoC