Repolode
gorules

gorules/zen

Cross-platform Business Rules Engine written in Rust, with bindings for Node.js, Python, Go, Java, Kotlin, .NET, iOS and Android.

Stars
2,080
Forks
224
Open issues
41
Last commit
14 hours ago

What is it?

ZEN Engine is an open-source Business Rules Engine that evaluates decisions written as portable JSON. The core is written in Rust and exposed through native bindings for Node.js, Python, Go, Java, Kotlin, .NET, and Swift and Android packages, so the same rules run identically across platform stacks. Loading the JSON is left to the application, whether from the file system, a database or a service call.

Decisions can be modeled as graphs that combine decision tables, switches, expressions, functions and reusable sub-decisions, or as policy documents with typed data models and tables. Conditions use the ZEN Expression Language, which is designed to read close to how business teams describe rules. Version 2.0 adds static type checking across policies and graphs, and decisions are compiled once at load time before evaluation.

The project is maintained by GoRules, which also offers a hosted platform around the engine. External code contributions are not being accepted at this time, apart from documentation and tests.

Key features

  • 01Native bindings for Node.js, Python, Go, Java, Kotlin, .NET, Swift and Android.
  • 02Decisions stored as portable JSON that runs the same on every supported platform.
  • 03Visual decision graphs with decision tables, switches, expressions and sub-decisions.
  • 04Policy documents with typed data models, decision tables and assertions.
  • 05Static type checking and diagnostics across policies and graphs before runtime.
  • 06Pre-compiled decisions at load time for repeated evaluation.

Use cases

  • Moving pricing, eligibility or approval logic out of application code into editable rules.
  • Sharing one set of business rules between backend services written in different languages.
  • Running the same decision logic on mobile apps and servers.
  • Reviewing and testing business rules with domain experts before release.

Quick start

  1. 1

    Install the Node.js package

    npm i @gorules/zen-engine
  2. 2

    Load a JDM decision graph and evaluate it with input data

Things to know

  • Contributions are not accepted at this time, apart from documentation and tests.
  • Some platforms are not supported for every language, such as musl Linux for Python, Go, Java and .NET.

Topics

FAQ

What is zen?
Cross-platform Business Rules Engine written in Rust, with bindings for Node.js, Python, Go, Java, Kotlin, .NET, iOS and Android. ZEN Engine is an open-source Business Rules Engine that evaluates decisions written as portable JSON. The core is written in Rust and exposed through native bindings for Node.js, Python, Go, Java, Kotlin, .NET, and Swift and Android packages, so the same rules run identically across platform stacks. Loading the JSON is left to the application, whether from the file system, a database or a service call.
Is zen free to use? What license does it have?
zen is open source under the MIT license. Check the license terms before using it in commercial products.
Is zen still maintained?
Actively maintained. The last commit to zen was on Oct 20, 2026.
What can I use zen for?
Moving pricing, eligibility or approval logic out of application code into editable rules. Sharing one set of business rules between backend services written in different languages. Running the same decision logic on mobile apps and servers. Reviewing and testing business rules with domain experts before release.
How do I install zen?
Install the Node.js package: npm i @gorules/zen-engine Load a JDM decision graph and evaluate it with input data
Where can I get zen?
The source code and installation instructions are on GitHub: https://github.com/gorules/zen

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects