From cd65ce3c2c680bfb12339710b1c42c539c859983 Mon Sep 17 00:00:00 2001
From: Ivan Miletic <60513195+ivanmiletic@users.noreply.github.com>
Date: Thu, 13 Nov 2025 13:10:50 +0100
Subject: [PATCH 1/4] Update README with additional language bindings
Expanded supported bindings and platforms in README.
---
README.md | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
index 491dab51..91685426 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
# Business Rules Engine
ZEN Engine is a cross-platform, Open-Source Business Rules Engine (BRE). It is written in **Rust** and provides native
-bindings for **NodeJS**, **Python** and **Go**. ZEN Engine allows to load and
+bindings for **NodeJS**, **Python**, **Go**, **Java**, **Kotlin (JVM)**, **Kotlin (Android)**, **Swift (iOS)** and **Browser** (via WASM-wasi). ZEN Engine allows to load and
execute [JSON Decision Model (JDM)](https://docs.gorules.io/reference/json-decision-model-jdm) from JSON files.
@@ -12,7 +12,7 @@ An open-source React editor is available on our [JDM Editor](https://github.com/
## Usage
-ZEN Engine is built as embeddable BRE for your **Rust**, **NodeJS**, **Python** or **Go** applications.
+ZEN Engine is built as embeddable BRE for your **NodeJS**, **Python**, **Go**, **Java**, **Kotlin (JVM)**, **Kotlin (Android)**, **Swift (iOS)** or Browser Javascript (via **WASM-wasi**) applications.
It parses JDM from JSON content. It is up to you to obtain the JSON content, e.g. from file system, database or service
call.
@@ -317,15 +317,17 @@ maintainability in complex systems.
## Support matrix
-| Arch | Rust | NodeJS | Python | Go |
-|:----------------|:-------------------|:-------------------|:-------------------|:-------------------|
-| linux-x64-gnu | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
-| linux-arm64-gnu | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
-| darwin-x64 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
-| darwin-arm64 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
-| win32-x64-msvc | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
-| linux-x64-musl | :x: | :heavy_check_mark: | :x: | :x: |
-| linux-arm64-musl| :x: | :heavy_check_mark: | :x: | :x: |
+| Ecosystem | Architectures Supported | Release Channel |
+|:----------|:------------------------|:----------------|
+| Rust (Core Engine) | all | crates.io |
+| Go (CGO Bindings) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | github.com/gorules/zen-go (auto-sync via PR) |
+| Node.js (N-API) | `linux-x64-gnu`, `linux-arm64-gnu`, `linux-x64-musl`, `linux-arm64-musl`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc`, `wasm32-wasi` | npm (@gorules/zen-engine) |
+| Browser (N-API) | `wasm32-wasi` | npm (@gorules/zen-engine) |
+| Python (PyO3) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | PyPI (zen-engine) |
+| Java (UniFFI) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | Maven Central (zen-engine) |
+| Kotlin (JVM) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | Maven Central (zen-engine-kotlin) |
+| Kotlin (Android) - coming soon | `android-arm64`, `android-armv7`, `android-i686`, `android-x64` | Maven Central (zen-engine-kotlin-android |
+| Swift (iOS) | `ios-arm64`, `ios-x64`, `ios-arm64-sim` | github.com/gorules/zen-ios (auto-sync via PR) |
## Contribution
From eeccaded0faf214ce24ddc9ece2396bddb83a2e4 Mon Sep 17 00:00:00 2001
From: Ivan Miletic <60513195+ivanmiletic@users.noreply.github.com>
Date: Thu, 13 Nov 2025 15:14:16 +0100
Subject: [PATCH 2/4] Update README.md
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 91685426..d6982366 100644
--- a/README.md
+++ b/README.md
@@ -325,9 +325,9 @@ maintainability in complex systems.
| Browser (N-API) | `wasm32-wasi` | npm (@gorules/zen-engine) |
| Python (PyO3) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | PyPI (zen-engine) |
| Java (UniFFI) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | Maven Central (zen-engine) |
-| Kotlin (JVM) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | Maven Central (zen-engine-kotlin) |
-| Kotlin (Android) - coming soon | `android-arm64`, `android-armv7`, `android-i686`, `android-x64` | Maven Central (zen-engine-kotlin-android |
-| Swift (iOS) | `ios-arm64`, `ios-x64`, `ios-arm64-sim` | github.com/gorules/zen-ios (auto-sync via PR) |
+| Kotlin JVM (UniFFI) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | Maven Central (zen-engine-kotlin) |
+| Kotlin Android (UniFFI) - coming soon | `android-arm64`, `android-armv7`, `android-i686`, `android-x64` | Maven Central (zen-engine-kotlin-android |
+| Swift iOS (UniFFI) | `ios-arm64`, `ios-x64`, `ios-arm64-sim` | github.com/gorules/zen-ios (auto-sync via PR) |
## Contribution
From 1471f69725bdb46622c45a2f4417872b90dae09d Mon Sep 17 00:00:00 2001
From: Ivan Miletic <60513195+ivanmiletic@users.noreply.github.com>
Date: Tue, 25 Nov 2025 10:58:55 +0100
Subject: [PATCH 3/4] Fix Kotlin Android entry in README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index d6982366..a23b37aa 100644
--- a/README.md
+++ b/README.md
@@ -326,7 +326,7 @@ maintainability in complex systems.
| Python (PyO3) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | PyPI (zen-engine) |
| Java (UniFFI) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | Maven Central (zen-engine) |
| Kotlin JVM (UniFFI) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | Maven Central (zen-engine-kotlin) |
-| Kotlin Android (UniFFI) - coming soon | `android-arm64`, `android-armv7`, `android-i686`, `android-x64` | Maven Central (zen-engine-kotlin-android |
+| Kotlin Android (UniFFI) | `android-arm64`, `android-armv7`, `android-i686`, `android-x64` | Maven Central (zen-engine-kotlin-android |
| Swift iOS (UniFFI) | `ios-arm64`, `ios-x64`, `ios-arm64-sim` | github.com/gorules/zen-ios (auto-sync via PR) |
## Contribution
From 9de85473c55fb392f57e43fa30df7b70b0d7b67f Mon Sep 17 00:00:00 2001
From: Ivan Miletic <60513195+ivanmiletic@users.noreply.github.com>
Date: Wed, 4 Mar 2026 14:48:39 +0100
Subject: [PATCH 4/4] Add C# binding and update Java platform support
Updated README to include C# as a supported binding and added linux-s390x-gnu for Java.
---
README.md | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/README.md b/README.md
index a23b37aa..69af1a6f 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
# Business Rules Engine
ZEN Engine is a cross-platform, Open-Source Business Rules Engine (BRE). It is written in **Rust** and provides native
-bindings for **NodeJS**, **Python**, **Go**, **Java**, **Kotlin (JVM)**, **Kotlin (Android)**, **Swift (iOS)** and **Browser** (via WASM-wasi). ZEN Engine allows to load and
+bindings for **NodeJS**, **Python**, **Go**, **Java**, **C#**, **Kotlin (JVM)**, **Kotlin (Android)**, **Swift (iOS)** and **Browser** (via WASM-wasi). ZEN Engine allows to load and
execute [JSON Decision Model (JDM)](https://docs.gorules.io/reference/json-decision-model-jdm) from JSON files.
@@ -12,7 +12,7 @@ An open-source React editor is available on our [JDM Editor](https://github.com/
## Usage
-ZEN Engine is built as embeddable BRE for your **NodeJS**, **Python**, **Go**, **Java**, **Kotlin (JVM)**, **Kotlin (Android)**, **Swift (iOS)** or Browser Javascript (via **WASM-wasi**) applications.
+ZEN Engine is built as embeddable BRE for your **NodeJS**, **Python**, **Go**, **Java**, **C#**, **Kotlin (JVM)**, **Kotlin (Android)**, **Swift (iOS)** or Browser Javascript (via **WASM-wasi**) applications.
It parses JDM from JSON content. It is up to you to obtain the JSON content, e.g. from file system, database or service
call.
@@ -265,13 +265,6 @@ true, allowing branching to multiple paths.
Note: If there are multiple edges from the same condition, there is no guaranteed order of execution.
-*Available from:*
-
-* Python 0.16.0
-* NodeJS 0.13.0
-* Rust 0.16.0
-* Go 0.1.0
-
### Functions Node
Function nodes are JavaScript snippets that allow for quick and easy parsing, re-mapping or otherwise modifying the data
@@ -324,7 +317,8 @@ maintainability in complex systems.
| Node.js (N-API) | `linux-x64-gnu`, `linux-arm64-gnu`, `linux-x64-musl`, `linux-arm64-musl`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc`, `wasm32-wasi` | npm (@gorules/zen-engine) |
| Browser (N-API) | `wasm32-wasi` | npm (@gorules/zen-engine) |
| Python (PyO3) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | PyPI (zen-engine) |
-| Java (UniFFI) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | Maven Central (zen-engine) |
+| Java (UniFFI) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc`, `linux-s390x-gnu` | Maven Central (zen-engine) |
+| C# (UniFFI) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | NuGet (GoRules.ZenEngine) |
| Kotlin JVM (UniFFI) | `linux-x64-gnu`, `linux-arm64-gnu`, `darwin-x64`, `darwin-arm64`, `win32-x64-msvc` | Maven Central (zen-engine-kotlin) |
| Kotlin Android (UniFFI) | `android-arm64`, `android-armv7`, `android-i686`, `android-x64` | Maven Central (zen-engine-kotlin-android |
| Swift iOS (UniFFI) | `ios-arm64`, `ios-x64`, `ios-arm64-sim` | github.com/gorules/zen-ios (auto-sync via PR) |