Rodar Python

Python script engine adapter for Rodar.

Enables Python scripts in BPMN ScriptTask elements by implementing the Rodar.Expression.ScriptEngine behaviour.

Status

Not yet implemented. The engine stub is in place but returns {:error, :not_implemented}.

Planned Approach

Use Erlport to communicate with a Python interpreter via Erlang ports. This provides process isolation and leverages the full Python ecosystem.

Alternative: Pythonx — embeds Python via NIF for lower-latency calls, at the cost of tighter coupling.

Installation

Once published, add to your mix.exs:

{:rodar_python, "~> 0.1.0"}

Usage

Register the engine on application start:

Rodar.Expression.ScriptRegistry.register("python", RodarPython.Engine)

Then use scriptFormat="python" in your BPMN diagrams:

<scriptTask id="task1" name="Python Task" scriptFormat="python">
  <script>result = data["count"] + 1</script>
</scriptTask>

Key Considerations

License

Apache-2.0 — see LICENSE.