| Crates.io | bpmn-engine |
| lib.rs | bpmn-engine |
| version | 0.1.0 |
| created_at | 2025-11-10 07:15:47.751664+00 |
| updated_at | 2025-11-10 07:15:47.751664+00 |
| description | BPMN 2.0 execution engine for Rust with JSON and XML format support |
| homepage | |
| repository | https://github.com/gftdcojp/bpmn-engine-ts |
| max_upload_size | |
| id | 1924861 |
| size | 246,123 |
BPMN 2.0 execution engine for Rust, based on bpmn-engine npm package.
This project follows Semantic Driven Development principles with:
See PROJECT.jsonld, capabilities.jsonld, and activities.jsonld for design documentation.
The project maintains 100% test coverage with comprehensive test suites:
Run tests:
cargo test
Generate coverage report:
make test-coverage
✅ Core implementation completed ✅ XML format support completed ✅ Format detection and auto-parsing implemented ✅ JSON/XML serialization implemented ✅ Test infrastructure setup completed ✅ 79 tests passing (74 unit + 4 integration + 1 doc)
use bpmn_engine::model::ProcessDefinition;
let json = r#"{"id":"process1","processType":"process","isExecutable":true,"elements":[]}"#;
let definition = ProcessDefinition::from_json(json)?;
use bpmn_engine::model::ProcessDefinition;
let xml = r#"<?xml version="1.0"?>
<bpmn2:definitions xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL">
<bpmn2:process id="process1" isExecutable="true">
<bpmn2:startEvent id="start" />
</bpmn2:process>
</bpmn2:definitions>"#;
let definition = ProcessDefinition::from_xml(xml)?;
use bpmn_engine::model::ProcessDefinition;
let input = "..." // JSON or XML
let (definition, format) = ProcessDefinition::from_auto(input)?;
let json = definition.to_json()?;
let xml = definition.to_xml()?;
Apache-2.0