process_mining 0.4.0

Process Mining library for working with (object-centric) event data
Documentation
[package]
name = "process_mining"
version = "0.4.0"
edition = "2021"
license = "MIT OR Apache-2.0"
description = "Process Mining library for working with (object-centric) event data"
homepage = "https://github.com/aarkue/rust-bridge-process-mining"
repository = "https://github.com/aarkue/rust-bridge-process-mining"
documentation = "https://docs.rs/process_mining/"
readme = "README.md"
keywords = ["process-mining"]
rust-version = "1.77"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
chrono = { version = "0.4.40", features = ["serde"] }
duckdb = { version = "1.2.1", optional = true, features = ["chrono"]}
flate2 = "1.1.1"
graphviz-rust = { version = "0.9.3", optional = true }
itertools = { version = "0.14.0" }
kuzu = {version = "=0.11.2", optional = true}
nalgebra = { version = "0.33.2", optional = true }
ordered-float = "5.0.0"
petgraph = "0.8.1"
polars = { version = "0.51.0", features = ["dtype-slim", "timezones", "partition_by"], optional = true }
quick-xml = { version = "0.37.4" }
rand = { version = "0.9.1", optional = true }
rayon = "1.7.0"
rusqlite = { version = "0.32.1", features = ["bundled","chrono", "serialize"], optional = true }
serde_json = "1.0.105"
serde = {version = "1.0.188", features = ["derive"]}
serde_with = { version = "3.16.0", features = ["std", "macros", "schemars_1"]}
tempfile = "3"
uuid = {version = "1.16.0", features = ["v4", "serde"]}
macros_process_mining = { path = "../macros_process_mining", version = "0.1.0" }
schemars = { version = "1.1.0", features = ["chrono04", "uuid1"]}
inventory = { version = "0.3", optional = true }

[features]

# Enables exporting Petri nets as PNG/SVG/... images using graphviz.
# Note: graphviz needs to be locally installed to the PATH for the image export functions to work.
graphviz-export = ["dep:graphviz-rust"]

# Enables OCEL 2.0 SQLite/DuckDB import and export functionality
# Note: this might not work on certain architectures or machines if SQLite is not available/cannot be build
ocel-sqlite = ["dep:rusqlite"] 
ocel-duckdb = ["dep:duckdb"]

# Enables polars DataFrame conversion from/to event data structs
dataframes = ["dep:polars"]

# Enables kuzudb features for OCEL (e.g., exporting OCEL to kuzudb database)
kuzudb = ["dep:kuzu"]

# Enables event log splitting (+rand dependency)
log-splitting = ["dep:rand"]

# Enables algebraic functionality
token-based-replay = ["dep:nalgebra"]

# Enable bindings
bindings = [
   "dep:inventory"
]

all = ["graphviz-export","ocel-sqlite","ocel-duckdb","dataframes","kuzudb", "log-splitting", "token-based-replay", "bindings" ]

[package.metadata.docs.rs]
all-features = true



[[example]]
name = "ocel_kuzudb_export"
required-features = ["dataframes", "kuzudb"]

[[example]]
name = "ocel_duckdb_export"
required-features = ["ocel-duckdb"]