Repolode
gorules

gorules/zen

Rust製のクロスプラットフォームBusiness Rules Engine。Node.js、Python、Go、Java、Kotlin、.NET、iOS、Android向けのバインディングを提供します。

スター
2,080
フォーク
224
未解決の Issue
41
最終コミット
13 時間前

これは何?

ZEN Engineは、ポータブルなJSONで記述された意思決定を評価するオープンソースのBusiness Rules Engineです。コアはRustで実装され、Node.js、Python、Go、Java、Kotlin、.NET向けのネイティブバインディングと、SwiftおよびAndroid向けパッケージを通じて利用できます。そのため、同じルールを異なるプラットフォームスタックで一貫して実行できます。JSONの読み込みはアプリケーション側で行い、ファイルシステム、データベース、サービス呼び出しなどから取得できます。

意思決定は、decision table、switch、expression、function、再利用可能なサブ意思決定を組み合わせたグラフとしてモデル化できます。また、型付きデータモデルとテーブルを備えたポリシードキュメントとして記述することもできます。条件の記述には、ビジネスチームがルールを説明する表現に近い読みやすさを目指したZEN Expression Languageを使用します。バージョン2.0ではポリシーとグラフ全体にわたる静的型チェックが追加され、意思決定は評価前のロード時に一度だけコンパイルされます。

このプロジェクトはGoRulesがメンテナンスしており、同社はエンジンを中心としたホステッドプラットフォームも提供しています。現時点では、ドキュメントとテストを除き、外部からのコードの貢献は受け付けていません。

主な機能

  • 01Node.js、Python、Go、Java、Kotlin、.NET、Swift、Android向けのネイティブバインディング。
  • 02ポータブルなJSONとして保存され、対応するすべてのプラットフォームで同じように実行できる意思決定。
  • 03decision table、switch、expression、サブ意思決定を備えたビジュアルな意思決定グラフ。
  • 04型付きデータモデル、decision table、assertionを備えたポリシードキュメント。
  • 05実行前にポリシーとグラフ全体を検査する静的型チェックと診断機能。
  • 06繰り返し評価に備え、ロード時に事前コンパイルされる意思決定。

ユースケース

  • 料金設定、適格性判定、承認のロジックをアプリケーションコードから切り離し、編集可能なルールに移す。
  • 異なる言語で書かれたバックエンドサービス間で、同じビジネスルールを共有する。
  • モバイルアプリとサーバーで同じ意思決定ロジックを実行する。
  • リリース前に、ドメインエキスパートとビジネスルールをレビューおよびテストする。

クイックスタート

  1. 1

    Node.js パッケージをインストールする

    npm i @gorules/zen-engine
  2. 2

    JDM 決定グラフを読み込み、入力データで評価する

使う前に知っておきたいこと

  • 現在、ドキュメントとテストを除き、コントリビューションは受け付けていません。
  • Python、Go、Java、.NET での musl Linux など、言語によっては一部のプラットフォームがサポートされていません。

トピック

よくある質問

zen とは?
Rust製のクロスプラットフォームBusiness Rules Engine。Node.js、Python、Go、Java、Kotlin、.NET、iOS、Android向けのバインディングを提供します。 ZEN Engineは、ポータブルなJSONで記述された意思決定を評価するオープンソースのBusiness Rules Engineです。コアは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

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト