Skip to main content

Crate bpmn_engine

Crate bpmn_engine 

Source
Expand description

§BPMN Engine

BPMN 2.0 execution engine for Rust.

This crate provides a high-performance, type-safe BPMN 2.0 execution engine that supports BPMN 2.0 JSON format as standard I/O.

§Design Principles

  • Activity/Capability-based design: Following DoDAF v2 DM2 principles
  • Type safety: Leveraging Rust’s type system
  • Extensibility: Support for custom tasks and listeners
  • Future-ready: Designed for GraphQL API and persistence layer integration

§Example

use bpmn_engine::{Engine, ProcessDefinition};

let engine = Engine::new();
let definition = ProcessDefinition::from_json(r#"
{
  "id": "process1",
  "name": "Example Process",
  "elements": []
}"#)?;

let instance = engine.start_process(definition, None).await?;

Re-exports§

pub use engine::Engine;
pub use engine::EngineBuilder;
pub use engine::EngineError;
pub use engine::instance::ProcessInstance;
pub use engine::context::ExecutionContext;
pub use model::ProcessDefinition;
pub use activity::Activity;
pub use activity::ActivityError;
pub use activity::ActivityResult;
pub use activity::ProcessListener;
pub use activity::ActivityFactory;
pub use activity::DefaultActivityFactory;

Modules§

activity
Activity Module
capability
Capability Module
elements
BPMN Elements
engine
Engine Module
model
BPMN Model
repository
Repository Module