Skip to main content

License: MIT

Python 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 execute JSON Decision Model (JDM) from JSON files.

Open-Source Rules Engine

An open-source React editor is available on our JDM Editor repo.

Usage

ZEN Engine is built as embeddable BRE for your Rust, NodeJS, Python or Go 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.

Installation

pip install zen-engine

Usage

To execute a simple decision you can use the code below.

import zen

# Example filesystem content, it is up to you how you obtain content
with open("./jdm_graph.json", "r") as f:
  content = f.read()

engine = zen.ZenEngine()

decision = engine.create_decision(content)
result = decision.evaluate({"input": 15})

Loaders

For more advanced use cases where you want to load multiple decisions and utilise graphs you can build loaders.

import zen

def loader(key):
    with open("./jdm_directory/" + key, "r") as f:
        return f.read()

engine = zen.ZenEngine({"loader": loader})
result = engine.evaluate("jdm_graph1.json", {"input": 5})

When engine.evaluate is invoked it will call loader and pass a key expecting a content of the JDM decision graph. In the case above we will assume file jdm_directory/jdm_graph1.json exists.

Similar to this example you can also utilise loader to load from different places, for example from REST API, from S3, Database, etc.

Supported Platforms

List of platforms where Zen Engine is natively available:

For a complete Business Rules Management Systems (BRMS) solution:

JSON Decision Model (JDM)

GoRules JDM (JSON Decision Model) is a modeling framework designed to streamline the representation and implementation of decision models.

Understanding GoRules JDM

At its core, GoRules JDM revolves around the concept of decision models as interconnected graphs stored in JSON format. These graphs capture the intricate relationships between various decision points, conditions, and outcomes in a GoRules Zen-Engine.

Graphs are made by linking nodes with edges, which act like pathways for moving information from one node to another, usually from the left to the right.

The Input node serves as an entry for all data relevant to the context, while the Output nodes produce the result of decision-making process. The progression of data follows a path from the Input Node to the Output Node, traversing all interconnected nodes in between. As the data flows through this network, it undergoes evaluation at each node, and connections determine where the data is passed along the graph.

To see JDM Graph in action you can use Free Online Editor with built in Simulator.

There are 5 main node types in addition to a graph Input Node (Request) and Output Node (Response):

  • Decision Table Node
  • Switch Node
  • Function Node
  • Expression Node
  • Decision Node

Decision Table Node

Overview

Tables provide a structured representation of decision-making processes, allowing developers and business users to express complex rules in a clear and concise manner.

Decision Table

Structure

At the core of the Decision Table is its schema, defining the structure with inputs and outputs. Inputs encompass business-friendly expressions using the ZEN Expression Language, accommodating a range of conditions such as equality, numeric comparisons, boolean values, date time functions, array functions and more. The schema's outputs dictate the form of results generated by the Decision Table. Inputs and outputs are expressed through a user-friendly interface, often resembling a spreadsheet. This facilitates easy modification and addition of rules, enabling business users to contribute to decision logic without delving into intricate code.

Evaluation Process

Decision Tables are evaluated row by row, from top to bottom, adhering to a specified hit policy. Single row is evaluated via Inputs columns, from left to right. Each input column represents AND operator. If cell is empty that column is evaluated truthfully, independently of the value.

If a single cell within a row fails (due to error, or otherwise), the row is skipped.

HitPolicy

The hit policy determines the outcome calculation based on matching rules.

The result of the evaluation is:

  • an object if the hit policy of the decision table is first and a rule matched. The structure is defined by the output fields. Qualified field names with a dot (.) inside lead to nested objects.
  • null/undefined if no rule matched in first hit policy
  • an array of objects if the hit policy of the decision table is collect (one array item for each matching rule) or empty array if no rules match

Inputs

In the assessment of rules or rows, input columns embody the AND operator. The values typically consist of (qualified) names, such as customer.country or customer.age.

There are two types of evaluation of inputs, Unary and Expression.

Unary Evaluation

Unary evaluation is usually used when we would like to compare single fields from incoming context separately, for example customer.country and cart.total . It is activated when a column has field defined in its schema.

Example

For the input:

{
  "customer": {
    "country": "US"
  },
  "cart": {
    "total": 1500
  }
}
Decision Table Unary Test

This evaluation translates to

IF customer.country == 'US' AND cart.total > 1000 THEN {"fees": {"percent": 2}}
ELSE IF customer.country == 'US' THEN {"fees": {"flat": 30}}
ELSE IF customer.country == 'CA' OR customer.country == 'MX' THEN {"fees": {"flat": 50}}
ELSE {"fees": {"flat": 150}}

List shows basic example of the unary tests in the Input Fields:

Input entry Input Expression
"A" the field equals "A"
"A", "B" the field is either "A" or "B"
36 the numeric value equals 36
< 36 a value less than 36
> 36 a value greater than 36
[20..39] a value between 20 and 39 (inclusive)
20,39 a value either 20 or 39
<20, >39 a value either less than 20 or greater than 39
true the boolean value true
false the boolean value false
any value, even null/undefined
null the value null or undefined

Note: For the full list please visit ZEN Expression Language.

Expression Evaluation

Expression evaluation is used when we would like to create more complex evaluation logic inside single cell. It allows us to compare multiple fields from the incoming context inside same cell.

It can be used by providing an empty Selector (field) inside column configuration.

Example

For the input:

{
  "transaction": {
    "country": "US",
    "createdAt": "2023-11-20T19:00:25Z",
    "amount": 10000
  }
}
Decision Table Expression
IF time(transaction.createdAt) > time("17:00:00") AND transaction.amount > 1000 THEN {"status": "reject"}
ELSE {"status": "approve"}

Note: For the full list please visit ZEN Expression Language.

Outputs

Output columns serve as the blueprint for the data that the decision table will generate when the conditions are met during evaluation.

When a row in the decision table satisfies its specified conditions, the output columns determine the nature and structure of the information that will be returned. Each output column represents a distinct field, and the collective set of these fields forms the output or result associated with the validated row. This mechanism allows decision tables to precisely define and control the data output.

Example

Decision Table Output

And the result would be:

{
  "flatProperty": "A",
  "output": {
    "nested": {
      "property": "B"
    },
    "property": 36
  }
}

Switch Node (NEW)

The Switch node in GoRules JDM introduces a dynamic branching mechanism to decision models, enabling the graph to diverge based on conditions.

Conditions are written in a Zen Expression Language.

By incorporating the Switch node, decision models become more flexible and context-aware. This capability is particularly valuable in scenarios where diverse decision logic is required based on varying inputs. The Switch node efficiently manages branching within the graph, enhancing the overall complexity and realism of decision models in GoRules JDM, making it a pivotal component for crafting intelligent and adaptive systems.

The Switch node preserves the incoming data without modification; it forwards the entire context to the output branch(es).

Switch / Branching

HitPolicy

There are two HitPolicy options for the switch node, first and collect.

In the context of a first hit policy, the graph branches to the initial matching condition, analogous to the behavior observed in a table. Conversely, under a collect hit policy, the graph extends to all branches where conditions hold 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 using JavaScript. Inputs of the node are provided as function's arguments. Functions are executed on top of QuickJS Engine that is bundled into the ZEN Engine.

Function timeout is set to a 50ms.

const handler = (input, {dayjs, Big}) => {
    return {
        ...input,
        someField: 'hello'
    };
};

There are two built in libraries:

  • dayjs - for Date Manipulation
  • big.js - for arbitrary-precision decimal arithmetic.

Expression Node

The Expression node serves as a tool for transforming input objects into alternative objects using the Zen Expression Language. When specifying the output properties, each property requires a separate row. These rows are defined by two fields:

  • Key - qualified name of the output property
  • Value - value expressed through the Zen Expression Language

Note: Any errors within the Expression node will bring the graph to a halt.

Decision Table

Decision Node

The "Decision" node is designed to extend the capabilities of decision models. Its function is to invoke and reuse other decision models during execution.

By incorporating the "Decision" node, developers can modularize decision logic, promoting reusability and maintainability in complex systems.

Support matrix

Arch Rust NodeJS Python Go
linux-x64-gnu ✔️ ✔️ ✔️ ✔️
linux-arm64-gnu ✔️ ✔️ ✔️ ✔️
darwin-x64 ✔️ ✔️ ✔️ ✔️
darwin-arm64 ✔️ ✔️ ✔️ ✔️
win32-x64-msvc ✔️ ✔️ ✔️ ✔️

We do not support linux-musl currently.

Contribution

JDM standard is growing and we need to keep tight control over its development and roadmap as there are number of companies that are using GoRules Zen-Engine and GoRules BRMS. For this reason we can't accept any code contributions at this moment, apart from help with documentation and additional tests.

Metadata

Release files for zen-engine 0.44.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zen-engine 0.44.1
File Size Uploaded
zen_engine-0.44.1.tar.gz 194.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.44.1
File
zen_engine-0.44.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.44.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.44.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.44.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.44.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.44.1-cp313-cp313t-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64 Details
zen_engine-0.44.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
zen_engine-0.44.1-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
zen_engine-0.44.1-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
zen_engine-0.44.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
zen_engine-0.44.1-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
zen_engine-0.44.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
zen_engine-0.44.1-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
zen_engine-0.44.1-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.44.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.44.1-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.44.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
zen_engine-0.44.1-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
zen_engine-0.44.1-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.44.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.44.1-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.44.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
zen_engine-0.44.1-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
zen_engine-0.44.1-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.44.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
zen_engine-0.44.1-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
zen_engine-0.44.1-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.44.1-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
zen_engine-0.44.1-cp38-cp38-manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ x86-64 Details
zen_engine-0.44.1-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.44.1-cp37-cp37m-manylinux_2_28_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64 Details
zen_engine-0.44.1-cp37-cp37m-manylinux_2_28_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64 Details

Total release size: 131.9 MB

Release files / zen_engine-0.44.1.tar.gz

Download URL zen_engine-0.44.1.tar.gz
Size 194.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ab485e3e7a0cb4ed99d03b6af2b5edf4515a19a059a24b4467b117df5618c9ee
BLAKE2b-256 checksum
How to use checksums
8c89e27ffc7db378c95ea97206b81fb3a9666f7fcaeb9ebe4b79d35d8ec00f57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.44.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
f1e92c4a74887884ad056c4921763ef1c3d097de85ebfd11ab72e13ad6e346eb
BLAKE2b-256 checksum
How to use checksums
71a2805953132087c0d2161ae577a280a70cfa0c7987cdc85ba2fa2b999f2a6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.44.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
555834b943c601130299a4183088c33c76db573561a172f40b967f786e195ddd
BLAKE2b-256 checksum
How to use checksums
9649bded29db67ecc0add640c50663082c57a67ab591f3a93409320fa3fdfe79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.44.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
1d2b1e75b748f118b807be7511ef0bd02b66444ae9ff7f32567eaa6a15f648ab
BLAKE2b-256 checksum
How to use checksums
552306aa8db6e6ac3346fee76fab977d439646d3c864a61dacee6a829d5cdde0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.44.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
6afa3a50564583a66fcb67f3651ea543fe3a05a8acd24d232843e5b60e1ede97
BLAKE2b-256 checksum
How to use checksums
00fbae53819542f08d05c8e2115ac834c2f8a2d264a71abc3ae08b7caf791d0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.44.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
b5ca1cbb7a0d2b07dede52e8752f9c0b15ecf4ded6fe0921d387b6bd38a872b0
BLAKE2b-256 checksum
How to use checksums
616cdade976e8af6a4216d66b9d15a14b4fad8aafc74b1b766c9d1d75327d924
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp313-cp313t-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.44.1-cp313-cp313t-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
bb87ca94bcc4bcb7c73cc71a224933a69a18b2bdd6e95530c765e2e67ea07d9c
BLAKE2b-256 checksum
How to use checksums
531a159fd299b3920053af53037ccc3c376f25d8ce6c993f51276fb821c119f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp313-cp313-win_amd64.whl

Download URL zen_engine-0.44.1-cp313-cp313-win_amd64.whl
Size 4.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
9a1b79adc3f388ff3f72bc752052ae1731a027990eb1d7ca1732b102b6011ade
BLAKE2b-256 checksum
How to use checksums
6c5557d6882b685a07d2b7a3a5d2dfedc899875c6ac7ef77bf05080449142946
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.44.1-cp313-cp313-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f265937e5724e6bd0f6c6e328411e3fd9b1d1035ee4259793046b4e44530fb79
BLAKE2b-256 checksum
How to use checksums
6d84c7917874cddc3be448a3acba7fb7220fc02f34c1dca57a412b3e495693fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.44.1-cp313-cp313-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
83b874710960e7b0f875de2c595f0e3542b77ab5defa37294dbb85b4632511f6
BLAKE2b-256 checksum
How to use checksums
928dbcafd9fc0fd4039c0379a23397b4c955b7744faa6ba8285a8de21e2c49a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL zen_engine-0.44.1-cp313-cp313-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c75bcf672cbf63d50176b576dd42c31161a4d77ae6ef4cd48fd146b2ff64a9a5
BLAKE2b-256 checksum
How to use checksums
b79db271da65372d913d801d0bf749a9b27da958291e93867bd017717a42f77c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp313-cp313-macosx_10_12_x86_64.whl

Download URL zen_engine-0.44.1-cp313-cp313-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7145dbfbb0bd17a9811eeac85327391f23e81ffe34cc7ebd92e8d9a52c62e53c
BLAKE2b-256 checksum
How to use checksums
cd963ee1f3847a5d62257b626988c03b89fb5187c51a5dc2e15efce22180ef5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp312-cp312-win_amd64.whl

Download URL zen_engine-0.44.1-cp312-cp312-win_amd64.whl
Size 4.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
fd4b24d2a74dc333f46a1d12f439da823d045a152ae926b8dbfc4f6070a84b6a
BLAKE2b-256 checksum
How to use checksums
adaf6298c2513b73ff2f7972ebdb5e0e16a8c8de36fd6a9926a9c611b04c887c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.44.1-cp312-cp312-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
802666bbbeb29adeb4568ef961f7c7056ef333843728e5c9f219eba252a13d0e
BLAKE2b-256 checksum
How to use checksums
60b2c65517fa39245d580cf0a3e02414c72f604f6774f1651f069bc8b957ab56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.44.1-cp312-cp312-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fc339ae7732ed4b5db6b640278307718a96b43308bc88cb76943810a66ed6769
BLAKE2b-256 checksum
How to use checksums
853229bfc30ade711a960d88610744d231e4d14cc1ec240c7040ae56dc092074
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL zen_engine-0.44.1-cp312-cp312-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
46a0af5bd4a3c45e95c46e37162f8cb508a19a8fbd07d6041c3005e63747d524
BLAKE2b-256 checksum
How to use checksums
dfcb4ba5781d474a4f4ae054588d67f4b06c0886122cfab05043c6b19121d226
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp312-cp312-macosx_10_12_x86_64.whl

Download URL zen_engine-0.44.1-cp312-cp312-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a352c94d79320fa2848702c1689c36fb70930bbd2054fa9f69bcf58f950079a0
BLAKE2b-256 checksum
How to use checksums
1cf4b9718fe38643b864a60483a0b0122a737775f4535137ef4859e19fafa8f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp311-cp311-win_amd64.whl

Download URL zen_engine-0.44.1-cp311-cp311-win_amd64.whl
Size 4.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
a20b89ce43ac718e2c734e6a6b27661d481d9b7ac65b46c62172cbfcffd5bfd5
BLAKE2b-256 checksum
How to use checksums
1602a08a96495d4911bbd612aa0e9e7ead1d8174f83ede7c53cc235fc996f0f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.44.1-cp311-cp311-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8ffa0e6b76cf207669c67aa0a32c2a55d6b2694a7f4a13f45989beaf69fc6529
BLAKE2b-256 checksum
How to use checksums
b7499aa3ff81599d56440a6f7b4befc5d2aaabc196fe3757854ef958f61d1b32
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.44.1-cp311-cp311-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
27fdedcc0512aa0d95fefcd37ed87d251a1a1d27bb35e0724f561ee79782a137
BLAKE2b-256 checksum
How to use checksums
d2a60d3bd54b817966a78165036cbbcb69c49785ec29fdfcf122eece580a032f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL zen_engine-0.44.1-cp311-cp311-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
96692019ab79f104bca2ae987a0f9297cc727522e9b019d987495d94c76dd658
BLAKE2b-256 checksum
How to use checksums
09432cc36751118f7e6ac722116e016b9c12f0e9507a09da5c2bbc06efd2bff2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp311-cp311-macosx_10_12_x86_64.whl

Download URL zen_engine-0.44.1-cp311-cp311-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
1abb11d43ac810ada3bb2c1a7d35ea5913286f4e317767c5402e8d89dda4a1f9
BLAKE2b-256 checksum
How to use checksums
3dd6540753219e2be67a8c2710175c22fe6f5a906e135c9e0df387641cfb9c27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp310-cp310-win_amd64.whl

Download URL zen_engine-0.44.1-cp310-cp310-win_amd64.whl
Size 4.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
2adccc8ac0ac61cf5f3b43d9eaa3172046c498d508cd0fc1fab84681bbf506d4
BLAKE2b-256 checksum
How to use checksums
ffd04355b43733a624ab83ed307e226d8c2c4d1393fbd8be04e2cd650ac717cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.44.1-cp310-cp310-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b3025918cce56a1b6dae1ce77107c21ce02155baf60201ed665628954a68f154
BLAKE2b-256 checksum
How to use checksums
13423ea3562fe730e8b6adfbc099ea3ff868bd8dee2e45e8c878ab4397d5ed97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.44.1-cp310-cp310-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a155b2935b63126ae0b3a3f97d6cc231d9c13d6d9e931a05583d4b92cbcb5b49
BLAKE2b-256 checksum
How to use checksums
d01a433dd25b0cc179dd94e2f76df34909105501ed42daff8d3abbab64b7c696
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp39-cp39-win_amd64.whl

Download URL zen_engine-0.44.1-cp39-cp39-win_amd64.whl
Size 4.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
1d1b1bb011c60d69a5fd86f7992b663173b2ce0e5c5c941bafc69445de924ce9
BLAKE2b-256 checksum
How to use checksums
003c70c6907cf2090d4339e22fd94390dfbac9438d5538b6ce2e3faddf1c5051
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.44.1-cp39-cp39-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
29b91ba0268b5edbe937afb53f5b0bff4866041fe32848cb10d0ae8213f28d0a
BLAKE2b-256 checksum
How to use checksums
21e2ecd64238ca23ebb874b85d10e44d2e5e3f4392101f9ff1510f6583a87df5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp39-cp39-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.44.1-cp39-cp39-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
36d2a91ec8633792162b1ae2b5787e2fa3a8535ef28b1652d64d4db8793f07a2
BLAKE2b-256 checksum
How to use checksums
9185841c1875efc2cf47f40f66a09728b5e45321aeb17909f09717cf99be2239
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp38-cp38-win_amd64.whl

Download URL zen_engine-0.44.1-cp38-cp38-win_amd64.whl
Size 4.2 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
73172ee2c2ccb2a02b7546503930772c05d0918684f8472e5815034c9a0e7824
BLAKE2b-256 checksum
How to use checksums
19746fb2cb9c1c0539d0b7e8a6894b93a130d4ef348a99a39ac387a1692b7ae2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp38-cp38-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.44.1-cp38-cp38-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d327ed8416c3b7ba9c11b20914e78c8c0740758b3da03bd5630fae87530ac162
BLAKE2b-256 checksum
How to use checksums
7ea180321e8850e46534805a3bdbdb6175c85a22ed8f1d779e74021223af719d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp38-cp38-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.44.1-cp38-cp38-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f5b7e2cfadce311db567eafe12241ed7e80f28fec48db6a4088af5a1e3b90485
BLAKE2b-256 checksum
How to use checksums
be51535a8e0eb8504116ea67a91fe1ea2f8f89f85213dd6b402c23c94ddd99b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp37-cp37m-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.44.1-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0ff8b24d4b2252e3fdb12cdbc1472bda030d43710c8714773772a0c7e33f4c59
BLAKE2b-256 checksum
How to use checksums
78ea9ce81a9e7ec0f2ed478440dc99a3b7be11d6f5a5a9c93c52b5bc8704c1a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.44.1-cp37-cp37m-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.44.1-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6f53abb308c474dd61ff8a1c571b822f927f8ef2e13e07c4fa4a400f6dcb437e
BLAKE2b-256 checksum
How to use checksums
ee44385824d149781710e049b442ca34cd2698304670f5f7d7fc5d3971f5b3c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release history Release notifications | RSS feed

2.1.3

6 release files

2.1.2

6 release files

2.1.1

6 release files

2.1.0

6 release files

2.0.2

6 release files

2.0.1

6 release files

2.0.0

6 release files

This release

0.44.1 This release

33 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page