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.32.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.32.0
File Size Uploaded
zen_engine-0.32.0.tar.gz 172.7 kB Details

Built distributions (wheels)

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

Total release size: 100.7 MB

Release files / zen_engine-0.32.0.tar.gz

Download URL zen_engine-0.32.0.tar.gz
Size 172.7 kB
Tags Source
SHA-256 checksum
How to use checksums
05f64db47f710d2fce1e02cb27a9000e30b08af406904eef5ead0bf9c7c7808b
BLAKE2b-256 checksum
How to use checksums
415af8098f7e7e9e4d729a4204d9ea0fc615e7a1de56197deb3185495bf03495
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
e650fad47a1427295fb1131bd5d125dcc7acf1d18649fbd833ea2d6eac6c9547
BLAKE2b-256 checksum
How to use checksums
fcb945bd926edbb0d215cba020fd8ba4ac7ee45297e4ef9d66d741cc087c0415
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
2f9115ed08ae15b4638526cecd151f1c1dc5da90fe58febb816ce0415013df4f
BLAKE2b-256 checksum
How to use checksums
3d40d20a539c32c1631c9fc35d0065ca99e7525db7ac5a192617b839c8648195
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
7158d50f6a49bb8f744458b257e4a5087ad194cb1305144a68ffafb49fe6f389
BLAKE2b-256 checksum
How to use checksums
aa524692e0c7eed4b0f997839f8c37fbbc900fe32d50bfee869946397dd4a3aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.32.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
60c970571075b2a5a591fa114ed81cce74cd51609675f963d2687ba60494346a
BLAKE2b-256 checksum
How to use checksums
129c454a4fcd7e7499b5fd329386603bcce19ff3e03f7cc62b1d3430e0270fb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
2f6f97cc4b14a87901cb9788a0358d0a786cd2886690d0407df298fc1cb4a5c4
BLAKE2b-256 checksum
How to use checksums
5e5203592f7a5d57b9907d29e2371625fddfa9315a5eb5cd74a7369c125538b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
d803f55740a7b21a00d45e6c94e156e7af7edf5a874d1d71647d42eb641d4663
BLAKE2b-256 checksum
How to use checksums
0bd22cacb14b4c9e99935fe190b67d853f3d08e775ba48e5f780f6181fe6baf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp312-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
bdd43bc6be28db50075e5ba8b9c136d9d4c9ee8776ce1de6c804699517ad42a0
BLAKE2b-256 checksum
How to use checksums
a6f0823f1bc73c62d58ee77a85153ee84988b8ab3e9489a84fd396e7ffe5b1da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f00407175fcf211c1e17ecd00e2c35046f5ec26399651274859d5121884fc3c3
BLAKE2b-256 checksum
How to use checksums
7f4f925ccaab706fd908c6ed39a937a3d93c9be40471a2be93ba9584e0b473eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e60ae3c512584924295f3c8a976ca234010c97236119c70a9795a0b574fdbdef
BLAKE2b-256 checksum
How to use checksums
fd8649b958460597e5f8a88e4dcf72704a6cb49b3343c57fc559074e0720f8ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp312-cp312-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d27a589e41110692f4a730a73771a7d50dad588a9575a18924c921e1d04786e1
BLAKE2b-256 checksum
How to use checksums
6f915590bf1d3609a56e15e41913f3406ea78344e575ea8a979551b684daff06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
fbcb083205d4e8fc79222e50683a55672a6cd31217749710e4405e8874b51114
BLAKE2b-256 checksum
How to use checksums
2b825ab24052c473fcd8c5f6f3f2c5e118a411babe487e83175e6e4a6da09cb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp311-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
7d93067ff75587100dc8b56dc4ede95b407a931b05496753036e5125a9f7b8b9
BLAKE2b-256 checksum
How to use checksums
a1e510dc05ea63dedd81a71d52a87eca79005752c9561e653d3167a0f2afe131
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9824e16c8beb96364d6671541f3262c43bc34e8a06800c302cbcd6e809463fe4
BLAKE2b-256 checksum
How to use checksums
a60e71c67b03fd21ff20fcc1cfb04c4c882881b4ade46eee49a5a9479c43a511
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
61484b799ececd061af813cdd22fafb77fd4b632ce96ca187a49f7d41d923256
BLAKE2b-256 checksum
How to use checksums
6bfaf2144ec5433413855538e3dd32563e967f7fd9dd153e47bdd29cf88074e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp311-cp311-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
50850ef1f58d42f2bec3f91d9c52658a1c5ce0dba4f8f50179ba3808aaa84522
BLAKE2b-256 checksum
How to use checksums
96e5d1d00c5f653d33403ff00f2c9bd121b7e5c8bd14842a879d47e787de3e6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
1e17b8736115b3f459f8da74e8e8c8e224b817effc66d65deaebb88949995bbe
BLAKE2b-256 checksum
How to use checksums
d635469003999333014c33e1daadd41b046f94c099907eaa2c2e4f47324d8d9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp310-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
c12d3ca77292e09c374de980e54983320cd752170d3643a3caff564510eb813e
BLAKE2b-256 checksum
How to use checksums
c5663c6dbd3c20a2a554706660682c102f54a891a9e892414ab4cf05c2c0131a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c9b759df2325750fb7e7bd42cc38f36376975bd007222f89ff3770c9435c7575
BLAKE2b-256 checksum
How to use checksums
2e515ae1a517d2f7e201e63f28ebe0b1e26b50ba4f31ddd6d77c72818a8539ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
31a935a85cce78ec2ee62a1e926a13a5bdf632a2cb933e2e806bf06ae3f032f3
BLAKE2b-256 checksum
How to use checksums
32033b324c1ce03fed87c55b129e48937e643375e3d09af99983ac9c586a4d78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp310-cp310-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5228f8030c7f139af5b840fcfa906fd512cb1b04c8592b4c29c89c5c3ee1bc6a
BLAKE2b-256 checksum
How to use checksums
448b6be6579d6f57a0ba58e520a280f9a51b1ffd024ba6d16dd9a137bec17822
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
799e5640abd9908f71a3c5f77ab15fd2cd0a1e302b6b60f15b1f2dd4deada13e
BLAKE2b-256 checksum
How to use checksums
bfa2def80e2f6b4eb0eb631c1d23ea6de7dfb5bb79553c9ae42b1a616c0d56be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp39-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
9ffd87b8b14f607f327de298dcb48cede6910a95bee655e6f310cca2369c7334
BLAKE2b-256 checksum
How to use checksums
3d0783e28d3d5d507cf2b4630029114a969a572aa335f888e72e3cfac81cccb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
049c14a9b3b62e46e56b5c4e02c8aeb82f60e24102397976c47226074ae698be
BLAKE2b-256 checksum
How to use checksums
a891dcfc522cf77e5302e30e964d65a77b75468e8381abe8789edfcdec7fe612
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2f76619faa73e3b45ff2b70a08ae0a838a9dc6d60db7055564c212b284312591
BLAKE2b-256 checksum
How to use checksums
2102ec3d22e088417189bec4b728ea22dd6a96e166492afceb223b657fde9614
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL zen_engine-0.32.0-cp39-cp39-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
741f4bc04b0c2c219a6a4abe6b2a067cf58baf285dd4239687a9198cc5d8b19a
BLAKE2b-256 checksum
How to use checksums
e1442a2e013f8e71cb95b41890830d76cf3f4cc6895f0e56c7297f5e1be762f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.0-cp39-cp39-macosx_10_12_x86_64.whl

Download URL zen_engine-0.32.0-cp39-cp39-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.9 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d0a92906758894df4caae86d0729bf534438448a0c216a5056409b241feec9af
BLAKE2b-256 checksum
How to use checksums
fee8303ff202aa62df97d9d7e230569f3197d639898e0e1679c7857ad1559140
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp38-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
f3e048f9b6b7b60cab2493166c6b9ca7c2ac72bedaa4c0cb49b8a313969b8306
BLAKE2b-256 checksum
How to use checksums
876bb777f9a0da7797354dbd7bb917c366ec44f539caf7032194d6674dad6c48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c7a6c85b75f4ea8c71a1f2c7ce62c89f1306afe07ac08ee439714c60d5315963
BLAKE2b-256 checksum
How to use checksums
a81b9b26098e458a6e0edff0569a10e33d1e6919bebcc8662c249b5b94713b02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
562c33f5fad872a89c22410ffe63ffaa946fce407006fe61ea19a457956b053d
BLAKE2b-256 checksum
How to use checksums
ab2f03655ce7131aa5135907e57eb10a95ab751c0d3ba0c685fe129168f4685a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp37-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
2320c8b73c760f14c13ffa3855715a765b4ee9d02616d02cf6dc35cc4f4e0037
BLAKE2b-256 checksum
How to use checksums
18bc6ded7b03e5499f854e105c0a09d1a52bcb2617ea84ef7a1bc1fc91938f17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7893472c879c868f61f2368ae6fcf195165595cf2c601e2adabd75ce4116a330
BLAKE2b-256 checksum
How to use checksums
42eb33bd72e1eef91f1cfc5dfd81e3d11a8c6f7db361836ff8202866ae78385d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
820566c5234d99ec80851553b9ad9db4f52dc6e29c89b21c31a60467825adf52
BLAKE2b-256 checksum
How to use checksums
aa59f9a5cecb58b912d060b9d90cdb14243de15e899806380f001e02b0d9e071
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

34 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