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 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
linux-arm64-gnu :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
darwin-x64 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
darwin-arm64 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
win32-x64-msvc :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:

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.22.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.22.0
File Size Uploaded
zen_engine-0.22.0.tar.gz 124.8 kB Details

Built distributions (wheels)

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

Total release size: 55.4 MB

Release files / zen_engine-0.22.0.tar.gz

Download URL zen_engine-0.22.0.tar.gz
Size 124.8 kB
Tags Source
SHA-256 checksum
How to use checksums
acebfb8b405d81c6fc5cc9932e367f9d042ed32358cde4d8c460257112dc05a2
BLAKE2b-256 checksum
How to use checksums
f1923f6b2b6d836ad8df875c1fc737593efb8a943e0c3cb0e474e00fbd3fcdf8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
703b3930955cec3f084a8ba5afb871306be832481c882120641cd4340b1f8e2f
BLAKE2b-256 checksum
How to use checksums
08d8bd11d0455d2e6913e834b8ba827a5aca7e3b9f68167cb60b66a5c25da144
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
ef8e616046e19db20977c0762c162e3534f352547e72f3b2e4933aea68aae6b5
BLAKE2b-256 checksum
How to use checksums
19bab00785f5f10086fa5949228883f4005e7836e45fa8fbd0c737956f2e969e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
b12136aa9f34f4fb11758d336846f8318cadb275c84800ca85295eda7d8cfbdc
BLAKE2b-256 checksum
How to use checksums
fa6cd78bcf1fad75f5dde70327a6b9df7869ed15b7740ad4ca8bf7564b6230be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

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

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

Download URL zen_engine-0.22.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
bf476121858bf12d0b4aaf393954cad64257b0b2ff550959952b0836bbbc0f3c
BLAKE2b-256 checksum
How to use checksums
2925055f4913b88a6cf09c81d01e86f0948c43eaaa42ddc810b19d345662ee3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
554b170b80ff6c053e8737a1ded647f9842543004de56d122e160b4785eefc11
BLAKE2b-256 checksum
How to use checksums
1ae1c8b06b69d36ae28bddd1e19b436ab30d8dfb2de0f52df91316f7e9dbd37b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
8a8f706bbe6c094d5816d544d8e796933682799b9632765087542bda7f19ef0f
BLAKE2b-256 checksum
How to use checksums
ba3063af2f49b4a846e2f22867993b2231e657473ffed151aa0bf724a84d251c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp312-none-win_amd64.whl
Size 1.7 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
72ff90f0a838670533351bf31b20933880cad8207f6a972bf8825e0a2f6079a0
BLAKE2b-256 checksum
How to use checksums
fab50f03f7d7dbbcfe41dcc14bed08192b4afd238dca0c77bf78501e2ed8b164
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
10d19ba45e7a51f291cd582e63069d78fe0117754530e366dbb8bc962fcdd4cb
BLAKE2b-256 checksum
How to use checksums
e960cf09885201f8562ecdde1b3ea0a37fc4999a95bfbb4d81f51778bfe86340
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

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

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

Download URL zen_engine-0.22.0-cp312-cp312-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5ffec42675d535c81ccbafbc2582c10e196a619390f29c23adb0b9cf1f1e3b70
BLAKE2b-256 checksum
How to use checksums
ecbcbf28054453cd6e85df9fd8f84bfe206d0eefa0f27d98ec5cf05a66fba6d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a3465ac9bb25f4b848676171a9311316de5f95a7f4a030cefc634cee9ccb8c2b
BLAKE2b-256 checksum
How to use checksums
05ca7511db48c2627ac722cbd1e028e9fe248f92a4fb80513620f1ad7a586e02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp311-none-win_amd64.whl
Size 1.7 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
6e8b79c56186d61c4368f0ce320c59ec0b694c7d85c3b159bf5d036397180c73
BLAKE2b-256 checksum
How to use checksums
43ad5619b8904f1bb5db1457a41034457a7aa2de3e504e69e975135edc91bdaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2821ed5fd15964a4829f9ce0daa9557e79352ecf051042dff45621d15bacc01d
BLAKE2b-256 checksum
How to use checksums
952d23a4ae4e114dfb89ba762846f37e1c2d9a93310aa0509fe366ea70a79b17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
38f37e13cd1fb8e031177517fd6a344e73a875d600e141b3f7829b03f1fafc78
BLAKE2b-256 checksum
How to use checksums
fdfaf8eb6b30e274aa3c59c4119fddfa7beb3293526938c25ad9fb4b461979e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp311-cp311-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b4280400261ae46ab644872bfac1485f8a6a7bd059e46fe53483b5f1ee689604
BLAKE2b-256 checksum
How to use checksums
1577e4c771a42e8ac9406056fb177f6088852d57d9549641f997f22428b12b23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
408484e91c333a878d0beb7236250369e99f99eb5137e7f1e3795486a9de7b73
BLAKE2b-256 checksum
How to use checksums
da07feaa22b34bea22f38634c7c89c17303dd5ad00f41a212024a96fc5cfef6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp310-none-win_amd64.whl
Size 1.7 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
253fffcaf2ee36b36af4d062fa7c0c1fbb7ce56dfb552154bafd493e79958e12
BLAKE2b-256 checksum
How to use checksums
04a9e40ca46810e3cbeb937b69822c45b60a483fa9fa70deb9c4f9722120cdab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ac4aa0174825bd2728f24ea0c5d4965cd14caea370629272ea8e8ae61fdde4ce
BLAKE2b-256 checksum
How to use checksums
387a9e2692f8aa95aef081496e1ce2b6baf7e402641b352589e15bf8b0e8527c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
47df3fd358c6bc6e916da1d31e32fecde80e2dcdcd63cd915c081abfafb27f4b
BLAKE2b-256 checksum
How to use checksums
e67159f70fed8908c1deb925cafd300786266840b9c9c022f2373df64219296a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp310-cp310-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4f830df8badaf178fb7b1bdf76fd1d3f51a1f324dd668f2a37079f041df608c1
BLAKE2b-256 checksum
How to use checksums
3048ba53b22cc0a43ecf066d696d31892a109b89625041a7801a0a432621df55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a25f83938410314c346f9a05280749a0e6fcf309231c962564e8a20e5271d810
BLAKE2b-256 checksum
How to use checksums
00b894a91824169116030c018b50af96181b43e5a60285a081a046cf828740e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp39-none-win_amd64.whl
Size 1.7 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
8c66e2f9158a2c2d89ca68dc87256b3f72503ae2450edcfe1e7bba888a647d60
BLAKE2b-256 checksum
How to use checksums
76596bf58e8903a849b06f09a9bdf41315f1f5b1a70cb94d58a0f45a20f8cdc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
eef48d1a07b065d81099c1410e9af3a3df3523e0f58fa0046f7efb125f00f51a
BLAKE2b-256 checksum
How to use checksums
b31ecf8f1f5faed5942989e917fdf06ae7bbf0b06d7bb36f2ef79f91182cc8f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1cac48e99c3fc76e9ab92f00af5a7a394c939ed68549749054d661a3478f692c
BLAKE2b-256 checksum
How to use checksums
5a0a3571c2717a58d79e98d7595cbb699d4ed2d1ed21315d62dc642afda2f365
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp39-cp39-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
692e57fe67a8e81090efc3e883599afb25acf797597b8b248655c56eda571b09
BLAKE2b-256 checksum
How to use checksums
1929a662ddedf1643f1febf23b91b9393b2e6f194dbf26cf718efd9c81fdd055
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp39-cp39-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.9 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d3889a96dc3c817735e3212f2e5a3dd0d6373314375048b14e019a0a0c4aa14f
BLAKE2b-256 checksum
How to use checksums
8237f83f11f7782d6b19db21a750658631f025fc7cea4896f45bcd1ddd192429
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp38-none-win_amd64.whl
Size 1.7 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
9350a34a333a06151b08c734decafd5dae874ecafc8135276b18e467d3ba197a
BLAKE2b-256 checksum
How to use checksums
8738e5dfa41bf3385817de02463c4a998de4d59d403cac6fa400c29b55bd1f91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d1d0e0f3bd8e13ab7313b0997c1ceb8322eeff6153d2185a45833cdb18f0e0f1
BLAKE2b-256 checksum
How to use checksums
887b6e2c21e13ffe191732401ec43372697f5bed9e21b0eaa3c43bf7e76cc5f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fa564b56b1792fdb0ae69b887a1a0c35ad1f3c54b8313ead298491bf605ad280
BLAKE2b-256 checksum
How to use checksums
53e790b35851644dd92b5626b9c9d9669493073d3dc6f317d210455b0735f86e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp37-none-win_amd64.whl
Size 1.7 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
ad6c7f3c40fd428cc296009a406ad32ac145e942f497196cd92062d2a18e8bea
BLAKE2b-256 checksum
How to use checksums
67e6e30404bd04a343f72934c6ffc5c365a45adf0a642a9fcad24053e731b5c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f0fee607a8af60f0fe3abaa67bf259b5c39860d3f2277c8d957418d6db86e32e
BLAKE2b-256 checksum
How to use checksums
5fd804f21b0f8537f58df1c5e1d2ca7d4d5d1dd8835d280326edf10fde58cebc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

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

Download URL zen_engine-0.22.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
7c04ef7c94094a13599d1814d1e44ab61f3fd93282083d8c22fdc104c93014b6
BLAKE2b-256 checksum
How to use checksums
9bb098d9d98ce9b29376e8bf81846330e304cc8b78a50d9165d4a95aed579532
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.6.0

Release history Release notifications | RSS feed

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.22.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