aarkue / rust4pm

Rust4PM: Rust for Process Mining. See also the example applications at https://github.com/aarkue/rust4pm_demos.
https://crates.io/crates/process_mining
Apache License 2.0
9 stars 3 forks source link
data-science process-mining processmining

Rust4PM: A Rust Bridge for Process Mining

process_mining Rust Crate

Crates.io Downloads Documentation

This repository is a mono-repo containing the following parts:

The Java, Python and JavaScript bindings make use of the main process_mining library, which is written in Rust. Thus, complex algorithms or logic can be implemented only once in Rust. This implementation can then be exposed and used from Java, Python or JavaScript, in different enviroments. This not only reduces implementation effort (write only once, use everywhere), but also enables great performance.

Figure showcasing that one main Rust implementation can be used from Java, Python, or other languages.

Additional information, as well as evaluation results, are published in a written report titled Developing a High-Performance Process Mining Library with Java and Python Bindings in Rust.

Mostly, cargo is used to build and run this project. For more detailed instructions see https://github.com/aarkue/rust-bridge-template, which provides more details on how to build or run this and similar projects.

If you are looking for the Rust-based XES event log importer, see https://github.com/aarkue/rustxes, which contains the XES importer from process_mining/ extracted to its own crate with full Python bindings.

If you are interested in a starter kit template to bootstrap similar Rust libraries with Java and Python bindings, see https://github.com/aarkue/rust-bridge-template.

There you will find more information on how to get started, as well as build and run such projects.

Main Rust Library (process_mining)

process_mining is a collection of functions, structs and utilitities related to Process Mining.

See process_mining/README.md to view the dedicated README for the process_mining Rust library.

Further information is also available at https://crates.io/crates/process_mining and https://docs.rs/process_mining.

Bindings

Here you can find some preliminary information about the binding implementations. For more details, please take a look at the source code or the full written report.

Java

Python

WASM Proof of Concept

A live demo is available at https://wasm.siter.eu/.

Example XES -> Alpha+++ Discovery Example OCEL2.0 XML Import
image image

LICENSE

This project is licensed under either Apache License Version 2.0 or MIT License at your option.