apache / apache/burr

Rust Implementation of Apache Burr

オープン
#653 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る
area/core kind/feature priority/low
主要言語
Python
スター
2.5k
フォーク
195
平均マージ
6日 10時間
マージ済み PR(30日)
17

説明

**Is your feature request related to a problem? Please describe.**

I’d like to use Burr’s state-machine / action-graph approach in environments where Rust is the primary deployment/runtime (e.g., Rust microservices, single-binary distribution, memory-safety requirements, low-latency workloads, WASM targets, etc.).

Currently this means either running Burr as a separate Python service, embedding Python, or re-implementing similar functionality ad-hoc, each of which adds operational complexity and makes it harder to standardize on Burr as a core orchestration primitive across a Rust-heavy stack.

**Describe the solution you'd like**

I’d like to propose (and happily help implement) an officially supported or officially endorsed Rust implementation of Burr with the goal of full functional parity with the existing Python implementation, including:

* **Core runtime parity:** actions, transitions, state semantics, sync/async execution, parallelism features, hooks, typing system behavior, etc.
* **Persistence & tracking parity:** same data model and on-disk formats where applicable, so recorded runs are comparable/portable.
* **Telemetry/observability parity:** compatible tracing/metrics behavior (and the same conceptual execution events).
* **Tracking server + UI parity:** ideally, the existing UI can be used unchanged by matching the server API contract.
* **CLI parity:** equivalent commands/subcommands and behavior, or a clearly documented mapping.

Proposed Implementation approach:

* Define the spec as golden/characterization tests derived from the reference implementation (recorded runs + normalized outputs).
* Develop the test suite with a complete Rust project skeleton first.
* Develop subsystem-by-subsystem until all goldens pass and expanding coverage until parity is reached.

Questions for maintainers:

* Would this be welcome as an official multi-language implementation or preferred as a community project first?
* If official, should it live in this repo (subdir/workspace) or in a separate repo?

**Describe alternatives you've considered**

* **Rust wrapper around Python Burr** (PyO3 / embedding Python) to reuse existing behavior but with Rust entry-points.
* **Running Burr as a separate Python service** and integrating over HTTP/IPC from Rust (keeps Burr unchanged, but adds runtime/ops overhead).
* **Partial Rust port** (core runtime only) while keeping the existing tracking server/UI and/or persistence layer in Python.
* **Implementing only server/API compatibility** in Rust while leaving runtime execution to Python (or vice versa).
* Using other Rust state-machine/workflow crates instead of Burr (but that forfeits Burr’s model, tooling, and existing ecosystem).

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず既存の Python 実装を確認し、記録された実行と正規化された出力を基に、提案された golden/characterization tests を定義します。前述の Rust プロジェクトのスケルトンを構築し、その後、各サブシステム—runtime、persistence、telemetry、server/UI API、CLI—を定められたパリティ目標に照らして評価します;完了とは、合意した goldens が通過し、プロジェクトのスコープとリポジトリ内の配置が決定されていることを意味します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python, rust, wasm
領域
api, backend, observability
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。