@bpmnkit/reebe-wasm
v0.1.4
Published
WebAssembly playground for the Reebe BPMN workflow engine
Maintainers
Readme
Website · Documentation · GitHub · Changelog
Overview
@bpmnkit/reebe-wasm is the WebAssembly build of the Reebe BPMN workflow engine, compiled from Rust via wasm-pack. It enables full BPMN 2.0 process execution directly in the browser — no server required.
Used internally by @bpmnkit/engine for the ./wasm-runner entry point, which powers the BPMNKit Studio simulator and the casen test CLI command.
Features
- Full BPMN execution — gateways, events, subprocesses, boundary events
- Zero network calls — runs entirely in the browser sandbox
- DMN decisions — inline decision table evaluation
- FEEL expressions — condition and mapping evaluation
- WebAssembly — near-native performance, minimal footprint
Installation
npm install @bpmnkit/reebe-wasm
pnpm add @bpmnkit/reebe-wasmNote: This package is a WebAssembly binary. It requires a bundler with WASM support (Vite, Webpack 5+, or a modern Rollup config).
Usage
Used automatically by @bpmnkit/engine when you import from the ./wasm-runner subpath:
import { runScenarioWasm } from "@bpmnkit/engine/wasm-runner"
const result = await runScenarioWasm(bpmnXml, scenario)For direct usage:
import init, { WasmEngine } from "@bpmnkit/reebe-wasm"
await init()
const engine = new WasmEngine()
engine.deploy(bpmnXml)
const instance = engine.start_instance("my-process", JSON.stringify({ orderId: "123" }))API Reference
WasmEngine
| Method | Description |
|--------|-------------|
| deploy(bpmnXml: string) | Deploy a BPMN process definition |
| start_instance(processId, variablesJson) | Start a new process instance |
| complete_job(key, variablesJson) | Complete a service task job |
| fail_job(key, errorMessage, retries) | Fail a service task job |
| get_snapshot() | Return the current engine state as JSON |
Build from Source
The WASM binary is compiled from the Rust crate at apps/reebe/crates/reebe-wasm:
# From apps/reebe/
pnpm build:wasmRelated Packages
| Package | Description |
|---------|-------------|
| @bpmnkit/core | BPMN/DMN/Form parser, builder, layout engine |
| @bpmnkit/canvas | Zero-dependency SVG BPMN viewer |
| @bpmnkit/editor | Full-featured interactive BPMN editor |
| @bpmnkit/engine | Lightweight BPMN process execution engine |
| @bpmnkit/feel | FEEL expression language parser & evaluator |
| @bpmnkit/plugins | 22 composable canvas plugins |
| @bpmnkit/api | Camunda 8 REST API TypeScript client |
| @bpmnkit/ascii | Render BPMN diagrams as Unicode ASCII art |
| @bpmnkit/ui | Shared design tokens and UI components |
| @bpmnkit/profiles | Shared auth, profile storage, and client factories for CLI & proxy |
| @bpmnkit/operate | Monitoring & operations frontend for Camunda clusters |
| @bpmnkit/connector-gen | Generate connector templates from OpenAPI specs |
| @bpmnkit/cli | Camunda 8 command-line interface (casen) |
| @bpmnkit/proxy | Local AI bridge and Camunda API proxy server |
| @bpmnkit/patterns | Domain process patterns for BPMNKit AIKit |
| @bpmnkit/worker-client | Thin Zeebe REST client for standalone workers |
| @bpmnkit/cli-sdk | Plugin authoring SDK for the casen CLI |
| @bpmnkit/create-casen-plugin | Scaffold a new casen CLI plugin in seconds |
| @bpmnkit/casen-report | HTML reports from Camunda 8 incident and SLA data |
| @bpmnkit/casen-worker-http | Example HTTP worker plugin — completes jobs with live JSONPlaceholder API data |
| @bpmnkit/casen-worker-ai | AI task worker — classify, summarize, extract, and decide using Claude |
