Skip to main content

License: MIT

Python Rules Engine (ZEN Engine)

ZEN Engine is a cross-platform, Open-Source Business Rules Engine (BRE). It is written in Rust and provides native bindings for NodeJS and Python. 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 or Python 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.

If you are looking for a complete BRMS, take a look at self-hosted GoRules BRMS or GoRules Cloud.

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.

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

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

linux-x64-gnu linux-arm64-gnu darwin-x64 darwin-arm64 win32-x64-msvc
yes yes yes yes yes

We do not support linux-musl for now.

Metadata

Release files for zen-engine 0.18.0

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.18.0
File Size Uploaded
zen_engine-0.18.0.tar.gz 112.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.18.0
File
zen_engine-0.18.0-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.18.0-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.18.0-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.18.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.18.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.18.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.18.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.18.0-cp312-none-win_amd64.whl CPython 3.12 none Windows x86-64 Details
zen_engine-0.18.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
zen_engine-0.18.0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.18.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.18.0-cp311-none-win_amd64.whl CPython 3.11 none Windows x86-64 Details
zen_engine-0.18.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
zen_engine-0.18.0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.18.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.18.0-cp310-none-win_amd64.whl CPython 3.10 none Windows x86-64 Details
zen_engine-0.18.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
zen_engine-0.18.0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.18.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
zen_engine-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details
zen_engine-0.18.0-cp39-none-win_amd64.whl CPython 3.9 none Windows x86-64 Details
zen_engine-0.18.0-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
zen_engine-0.18.0-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.18.0-cp38-none-win_amd64.whl CPython 3.8 none Windows x86-64 Details
zen_engine-0.18.0-cp38-cp38-manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ x86-64 Details
zen_engine-0.18.0-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.18.0-cp37-none-win_amd64.whl CPython 3.7 none Windows x86-64 Details
zen_engine-0.18.0-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.18.0-cp37-cp37m-manylinux_2_28_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64 Details

Total release size: 73.0 MB

Release files / zen_engine-0.18.0.tar.gz

Download URL zen_engine-0.18.0.tar.gz
Size 112.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9b8067d1a0a5cf3fe058cb059d5e9c3af18631450a27756a5ed22d9f2405ed99
BLAKE2b-256 checksum
How to use checksums
bdc93391c850f7c5ce573812a9448823679b8873a2d7dd67cc46cff7ac4939da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 2.8 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
9dca0bba7f4e4c280bc0445b25187dcc249a313a6e4f4727e45c2f61c399c662
BLAKE2b-256 checksum
How to use checksums
2c6529d8ff429e29573f3a47bebcfcc56776eefb0103ec56ebe3822633efba3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 2.8 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
8dadb48acb57346d838f0b404d3f7c1b63778c1d01b96bbe3c2c32d5aea23b8f
BLAKE2b-256 checksum
How to use checksums
7927a0e0b2ece5336ee6c14b4a584089936bf7d45b1143bc71d66faa1c0bc32f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 2.7 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
4726ad61c5d8a5b473c2008e211545b03850c5cb53d2b9ef90457ce4fe4e5272
BLAKE2b-256 checksum
How to use checksums
e595e05066248734cf689cdbb83c92a4bdfa201fc494faa4ccd38c1f848399ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / zen_engine-0.18.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.18.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Size 2.8 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
a598208a4216014525c5b3da0471fe4f230c6d418099cfb2293eadde44643e2f
BLAKE2b-256 checksum
How to use checksums
b459d2d4ba3527b41cd6885ff0ef7f5986194f118271af82e428c765769ece52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / zen_engine-0.18.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.18.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 2.7 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
b151026b4bd07e84863b5f2cac1bb44271a384d3299ec7460d2e518eb76d99bb
BLAKE2b-256 checksum
How to use checksums
5a63fcb2a722b523649fa4ce21eb88bbe91d4f6f6882cbfdffde179cf7d373a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / zen_engine-0.18.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.18.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 2.8 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
9c8ee9343d60984e4bc8ec931e259649fd6cbcb1b3b4e3d30b485489a2132761
BLAKE2b-256 checksum
How to use checksums
4aedfaee0e5912b5d3d4a694b0fd3b7c8bbcb48a926bb613983fc1a80f4e549a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / zen_engine-0.18.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.18.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 2.7 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
67fa77c79c2698b6ef8a9a2071bdf12697baf34572eeb21a4ac0ff2e2f1667a2
BLAKE2b-256 checksum
How to use checksums
5022d9170581014437c9b0c447062220e2465ba1527fa3c6eb1eec1b9ed528d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / zen_engine-0.18.0-cp312-none-win_amd64.whl

Download URL zen_engine-0.18.0-cp312-none-win_amd64.whl
Size 1.6 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
40e44bf11deaaaf4ec241be5f86f487797c8edceb14a7c0e5a04124cfd7a1e28
BLAKE2b-256 checksum
How to use checksums
89ff8fc378a448f4140cd3bfe72c9101bc24a1169fbfe11d26af83d4d1ca7c71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 2.8 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a3fef9d605033dddb8e113e83c04d1d0c83acfb0cfbfc719dff28e52a49cbec8
BLAKE2b-256 checksum
How to use checksums
2f196877b6857613d80316357979728ec42fe07a1f4e4895259dbb29bf6950b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 2.7 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3491ba099e8187a35e88a2cfc32a0419c0e3053bfff92426c10e800f662068c0
BLAKE2b-256 checksum
How to use checksums
e166db4181d414345081e3f77748809e30cb5374d34e9e13f6372617e5721d58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp312-cp312-macosx_11_0_arm64.whl
Size 1.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2605d51b6c523253bf6ecf33b128ba4184f4be73ca0652ba131cd68c1e934f19
BLAKE2b-256 checksum
How to use checksums
6cb057e0b8230b0a98c2c1b955ce99e5579503d1019b6441a231215d51fb8179
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 1.9 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
2d3c719eae7267774522a4481805e71cfe72ac3c322c06b70d4b3c0ab149e0a1
BLAKE2b-256 checksum
How to use checksums
5165ed6d80e912eec17118ffa9792db31ae8f3c0439f4c45fa4de72412648cf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / zen_engine-0.18.0-cp311-none-win_amd64.whl

Download URL zen_engine-0.18.0-cp311-none-win_amd64.whl
Size 1.6 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
ac67fccc3cf124e8f9b3552bff89e1c6e5eccb2bf92ab887c8b3d458319c8507
BLAKE2b-256 checksum
How to use checksums
d198a20d8797d5079e849929841ab7acaecd509ee568d221ecadb0880d225134
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 2.8 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d7ed37ad8c5fe5b0f79f4da9739a8ec6821a0f21309714b2f8e74909e4a8081b
BLAKE2b-256 checksum
How to use checksums
0f318dec2d699cb25840482e149215e478ad2584fe21b46c2844f821336a5c2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 2.7 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
694094248435c73a4f76f4cf4ba902b33ed5bedf5d2776f8e4580080c0218583
BLAKE2b-256 checksum
How to use checksums
e36df48b13943df4c8afbfc57cb54921a9a154daa91b7db72195077b495aa85b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp311-cp311-macosx_11_0_arm64.whl
Size 1.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
71af857a13764940c01744ee6f8264cb353aceaac6d58383226386164a0d456c
BLAKE2b-256 checksum
How to use checksums
b58552675a3360d4e7a8ee29fe8cddb35fac537b56ce9e42da11735db2b0681b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 1.9 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e9a87bbff93fc6554fea7268bf5e581b1052669ee19d39e786f3a6316fe03b98
BLAKE2b-256 checksum
How to use checksums
e1df0a4a249e5d11f3ec6905c8431a29d3b077c695f3dd7a940598df627da361
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / zen_engine-0.18.0-cp310-none-win_amd64.whl

Download URL zen_engine-0.18.0-cp310-none-win_amd64.whl
Size 1.6 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
5312946a1f7266c8369f5e2567bbc4dfb62330cbe0028305c8af798d41c3b787
BLAKE2b-256 checksum
How to use checksums
a8fb71676f2b4d9014948e93d06a9ee1e80d596197f8661a32b8d6dfa9ffa125
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 2.8 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
637c1e8ed9852cb26d1cd6c9a1f31591ebe15b91d8ca7a67a8534599decfacbc
BLAKE2b-256 checksum
How to use checksums
19d577c4d8502ce168048786e5d64e426894bd27e56ad0f316baf0ad4a3a8f42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 2.7 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
98146f39eb158d9504c4683b7ed973ec750dbf38678f5b2698a2ced36db1b8c9
BLAKE2b-256 checksum
How to use checksums
d548aba6a0a9d002665eb5e4342102caeecb4eed70a292e169d1b7cf24a41853
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / zen_engine-0.18.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL zen_engine-0.18.0-cp310-cp310-macosx_11_0_arm64.whl
Size 1.8 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
67cd38ff9305e8a6ff5200e728de07e75ceca8becaf3b46cfe152077cf16b7cf
BLAKE2b-256 checksum
How to use checksums
ff58b9638787599134e09b2b374ab9617bdafbf7a7be4c789cab898d79b19d1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / zen_engine-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl

Download URL zen_engine-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 1.9 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5ed111fb109b61f8edbe6cc55f73bd7c6b2d1c1b697c04ad9a40f6042d674c70
BLAKE2b-256 checksum
How to use checksums
89b43fce775a9a561f2e0c7b99c961b116a1bce0ce8710ee4c7779dc8e10e55d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / zen_engine-0.18.0-cp39-none-win_amd64.whl

Download URL zen_engine-0.18.0-cp39-none-win_amd64.whl
Size 1.6 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
8167eb2950b2ae53d3acda062b977a82e6686b8532fca0f047c4b75c55d2028e
BLAKE2b-256 checksum
How to use checksums
544afe213533865c99b8b772649a1178aa053ec739b05f94ab4be3752254810e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 2.8 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4dddeb8732cbe6990b0f522c7eaedaed831180f11e547ad9961c455638a853e5
BLAKE2b-256 checksum
How to use checksums
2c13ce27322e106241c9cc4a620d77199d59558ae91fc644c12341694d4f1bc3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 2.7 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e637f45983edff4ac48af960cc9b68d7a18e2fe308a9a4425fa9b9610acaeda0
BLAKE2b-256 checksum
How to use checksums
6b22b7f2a9200bf962f352eea49b8f119f024a82130fd482b35ecf287a5f7928
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / zen_engine-0.18.0-cp38-none-win_amd64.whl

Download URL zen_engine-0.18.0-cp38-none-win_amd64.whl
Size 1.6 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
d08ea9098678367070d5757027436e95137a2a6430331dac3b7de5d550b733f1
BLAKE2b-256 checksum
How to use checksums
23245bc499cdd27def93ac89490c4a4887d552530c81ea9ddd737881f1ffe3bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 2.8 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
42bca7df40d157d38392277695e88f263bd8fcb1b378f5af5e5c4dd57aaf23f5
BLAKE2b-256 checksum
How to use checksums
22ad0c15814fae6be6e5fef9d3e82fbea8f41c50de3826de3154c1130347cfc9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 2.7 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
42dcecf9924f67c0dd7529bcde29e5bfebde0f478a344847e4ca7a056f935b6a
BLAKE2b-256 checksum
How to use checksums
ed027b3b561bb6ad468cd8eccb50d086fa731518bae60b04523ae0e72e0d773c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / zen_engine-0.18.0-cp37-none-win_amd64.whl

Download URL zen_engine-0.18.0-cp37-none-win_amd64.whl
Size 1.6 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
d789f1fc72892fa05a6e07be1395ff945e26c5cdba247573b10de2e6bbe81500
BLAKE2b-256 checksum
How to use checksums
e9c66a9f9428707d2c55fb4c395e70c008ccbc4f6430868f4ac0ae565a82706a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 2.8 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
73c56ce1ba62216e53d5523016de2639fdcf5919df6d098393cd47e2ea9b9526
BLAKE2b-256 checksum
How to use checksums
92ac001e8084d36f8d594bb21cf3b64f7eb9e931d1ea746f4de1506794a55603
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 2.7 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3671b79f011e5ce288e12e6758828a6c52aaddb425577aeee46863be236b9f8c
BLAKE2b-256 checksum
How to use checksums
f0c4a319025e4e3f5471f2e8b7a75de6f3ec8ce2860e6bd6975acc3a8b954948
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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.18.0 This release

32 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