一套契约,八种语言实现。jeeflow 是轻量级工作流引擎联邦:统一门面一行接入,零框架依赖、DDD 充血模型、SPI 全可替换,全量 action 契约跨语言一致。
- 📖 文档站:https://jeeflow-doc.mldong.com
- 🚀 演示站(八语言在线体验):https://jeeflow-demo.mldong.com
| 仓库 | 语言 | 发布渠道 / 安装 |
|---|---|---|
| jeeflow-java | Java 8+(参考实现) | Maven Central com.mldong.jeeflow,含 Spring Boot 2/3/4 Starter |
| jeeflow-go | Go 1.25+ | go get github.com/mldong/jeeflow-go |
| jeeflow-python | Python 3 | pip install jeeflow[mysql] |
| jeeflow-node | Node.js | npm i @mldong/jeeflow |
| jeeflow-php | PHP | composer require mldong/jeeflow-php |
| jeeflow-rust | Rust | crates.io 四 crate:jeeflow-core / jeeflow-persist / jeeflow-repository-sqlx / jeeflow-facade |
| jeeflow-moon | MoonBit | mooncakes.io 四模块:mldong/jeeflow-core / jeeflow-persist / jeeflow-repository-mysql / jeeflow-facade |
| jeeflow-csharp | C#/.NET | NuGet 四包:Mldong.Jeeflow.Core / Repository.MySql / Persist / Facade |
| jeeflow-ui | Vue 3 / TypeScript | 统一前端(工作台 + 流程设计器,演示站同款) |
| uni-jeeflow-app | uni-app x(Android) | 移动审批端(待办 / 审批 / 发起 / 流程图,已有 Gitee / GitCode 镜像) |
- 一套契约,八语言同构:全量 action manifest 各语言与 Java 参考实现零差集,统计接口同数据集逐字段一致
- 统一门面一行接入:
facade.flow(action, params)覆盖流程设计 / 部署 / 发起 / 审批 / 委托 / 抄送 / 统计全场景 - 零框架依赖:引擎核心不绑定 Web / ORM 框架,接入层技术选型自由
- DDD 充血模型:
ProcessInstance聚合根封装所有状态变更行为 - SPI 全可替换:仓储 / JSON / 用户 / 事务 / 表达式 / ID 生成 / 权限等均可扩展
- 内置流程模式:开始、结束、任务、决策、分支、合并、子流程、自定义节点、会签
- 事件机制:流程开始 / 结束、任务创建 / 完成、抄送知会等事件,集成层可监听并落站内信
打开演示站 https://jeeflow-demo.mldong.com ,切换 ?lang=java|go|python|node|php|rust|moon|csharp 即可在同一套 UI 上体验八种语言的引擎实现:发起 → 审批 → 抄送 → 统计全流程。
mldong 在 MoonBit(月兔)上的另一批项目:快速开发框架栈,以及能单独引入的组件与云存储客户端。框架栈按仓库克隆运行;下表里给了包名的,都能在 mooncakes.io 直接 moon add。
框架栈
| 仓库 | 说明 |
|---|---|
| mldong-moon | mldong 快速开发框架的 MoonBit 实现,与家族其他语言栈同一套接口契约:同样的响应信封、分页形状与权限码,前端和移动端不改代码即可切换后端 |
组件
| 仓库 | 说明 |
|---|---|
| moon-token | 登录态与会话标准件,多设备会话、可替换的存储后端、逐路由权限守卫,包名 mldong/moon-token |
| moon-hutool | 工具库,只依赖官方标准库,覆盖摘要与 MAC、编码、日期时间、HTTP 传输,包名 mldong/moon-hutool |
云存储
| 仓库 | 说明 |
|---|---|
| moon-file-storage | 统一文件存储:上传、下载、记录持久化、前端直传预签名、分片,换后端只改配置。包名前缀 mldong/moon-file-storage,各后端适配按 -local / -s3 / -oss / -qiniu / -ftp 后缀单独引,另有 -verify 供接入新平台时照它写一条实现 |
| moon-s3 | S3 协议客户端与 Signature V4 签名,包名 mldong/moon-s3 |
| moon-oss | 阿里云 OSS 原生协议客户端,包名 mldong/moon-oss |
| moon-kodo | 七牛 Kodo 原生协议客户端,包名 mldong/moon-kodo |
| moon-cos | 腾讯云 COS 原生 XML-API 客户端,走官方 q-sign-* 签名与虚主机寻址,覆盖对象读写与删除、条件读、单层列举、同平台复制、手动分片、预签名 GET 与 PUT、对象级 canned ACL、列桶 |
这些客户端都不依赖 moon-file-storage,可以只用它们;后端接入走到哪一步、各自支持哪些操作,以各仓 README 的进度表为准。工作流引擎的 MoonBit 实现是上方 jeeflow 一览里的 jeeflow-moon,跟这批组件不是一回事。
jeeflow 各仓开发主仓在 GitHub;发布打 tag 时 CI(sync-cn)自动将 master + 全部 tag 同步至 Gitee / GitCode 同名仓库,内容与正式发布物一致。uni-jeeflow-app 无发版 tag,push master 即同步(不同步 tag)。
MoonBit 那批仓不在 sync-cn 的同步范围内,只在本仓和 mooncakes.io 分发。
- mldong 快速开发框架:多语言栈(Java / Python / Go / Node / PHP / Rust / C# / MoonBit 等)已内置或集成 jeeflow 引擎,MoonBit 栈见上方 mldong-moon
- uni-jeeflow-app:基于 uni-app x 的移动审批端,见 github.com/mldong/uni-jeeflow-app
Apache License 2.0