Warp is an agentic development environment built out of the terminal, with a built-in coding agent or support for your own CLI agents.
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
Install the Node.js package
npm i @gorules/zen-engine - 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
A Rust framework for building web, desktop, and mobile apps from a single codebase, with React-like components and signals.
An incremental parser generator and parsing library that builds concrete syntax trees and updates them as source files are edited.
A Python 3 interpreter written in Rust, able to run Python code without CPython bindings, with WebAssembly and embedding support.
A retro game engine for Python that lets you make pixel-art games with a fixed palette and low-resolution screen.
An open-source, clean-room word processor written in pure Rust that reads and writes .docx and runs on desktop and in the browser.