Repolode
gorules

gorules/zen

用 Rust 编写的跨平台业务规则引擎,提供 Node.js、Python、Go、Java 等多语言绑定。

Star
2,080
Fork
224
未关闭 Issue
41
最近提交
19小时前

这是什么?

ZEN Engine 是一个开源的业务规则引擎,用于执行以可移植 JSON 格式存储的决策规则。核心使用 Rust 编写,并通过原生绑定支持 Node.js、Python、Go、Java、Kotlin、.NET,另有 Swift 和 Android 包,同一份规则在不同技术栈中运行结果一致。JSON 的加载方式(文件系统、数据库或服务调用)由应用自行决定。

决策既可以建模为图,组合决策表、分支、表达式、函数和可复用的子决策;也可以写成带有类型化数据模型和表格的策略文档。条件使用 ZEN Expression Language 编写,接近业务人员描述规则的方式。2.0 版本增加了跨策略和图的静态类型检查,决策在加载时即完成编译,求值时开销较小。

项目由 GoRules 维护,并提供围绕该引擎的托管平台。目前暂不接受外部代码贡献,仅接受文档和测试方面的帮助。

核心功能

  • 01提供 Node.js、Python、Go、Java、Kotlin、.NET、Swift 和 Android 的原生绑定。
  • 02决策以可移植 JSON 存储,在所有支持的平台上运行结果一致。
  • 03可视化决策图,包含决策表、分支、表达式和子决策。
  • 04策略文档支持类型化数据模型、决策表和断言。
  • 05运行前即可对策略和图进行静态类型检查与诊断。
  • 06决策在加载时预编译,便于重复执行。

适用场景

  • 将定价、资格判定或审批逻辑从应用代码中抽离,改为可编辑的规则。
  • 在使用不同语言编写的后端服务之间共享同一套业务规则。
  • 在移动端应用和服务器上运行相同的决策逻辑。
  • 在发布前与业务专家一起审阅和测试业务规则。

快速上手

  1. 1

    安装 Node.js 包

    npm i @gorules/zen-engine
  2. 2

    加载 JDM 决策图并用输入数据进行求值

使用前须知

  • 目前不接受代码贡献,仅接受文档和测试方面的帮助。
  • 部分平台并非所有语言都支持,例如 Python、Go、Java 和 .NET 不支持 musl 版 Linux。

标签

常见问题

zen 是什么?
用 Rust 编写的跨平台业务规则引擎,提供 Node.js、Python、Go、Java 等多语言绑定。 ZEN Engine 是一个开源的业务规则引擎,用于执行以可移植 JSON 格式存储的决策规则。核心使用 Rust 编写,并通过原生绑定支持 Node.js、Python、Go、Java、Kotlin、.NET,另有 Swift 和 Android 包,同一份规则在不同技术栈中运行结果一致。JSON 的加载方式(文件系统、数据库或服务调用)由应用自行决定。
zen 可以免费使用吗?用的什么许可证?
zen 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
zen 还在维护吗?
活跃维护中。zen 最近一次提交是在 2026年10月20日。
zen 适合用来做什么?
将定价、资格判定或审批逻辑从应用代码中抽离,改为可编辑的规则。 在使用不同语言编写的后端服务之间共享同一套业务规则。 在移动端应用和服务器上运行相同的决策逻辑。 在发布前与业务专家一起审阅和测试业务规则。
zen 怎么安装和运行?
安装 Node.js 包: npm i @gorules/zen-engine 加载 JDM 决策图并用输入数据进行求值
在哪里获取 zen?
源代码和安装说明在 GitHub 上:https://github.com/gorules/zen

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目