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.43.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.43.0
File Size Uploaded
zen_engine-0.43.0.tar.gz 194.0 kB Details

Built distributions (wheels)

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

Total release size: 131.5 MB

Release files / zen_engine-0.43.0.tar.gz

Download URL zen_engine-0.43.0.tar.gz
Size 194.0 kB
Tags Source
SHA-256 checksum
How to use checksums
09c3755aa3d6cffed31eff3e65c9c00b4fce1b14ee33b48298ce33206adad78e
BLAKE2b-256 checksum
How to use checksums
252a6ae9f0169438e4da43ddbe590e122d671c85ba91da3ead5281382ba6feef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

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

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

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

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

Download URL zen_engine-0.43.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
86ba711de13696fdc47e98a86f6902602cfe6d8ed9d1c1c6ef0c42c94af6b229
BLAKE2b-256 checksum
How to use checksums
522f26a10817ec9eec049e29b3c5d813507d9970f18bebf84a2162994e58d77d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

Download URL zen_engine-0.43.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
3677f874c72776e9664982a8f87d68525776543b63614d928c14a8ad4ddee4db
BLAKE2b-256 checksum
How to use checksums
4d4d4d2b41f9d709c89e8455506590038b59cb0b78de5ec95ac83e5857e0a450
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

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

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

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

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

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

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

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

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

Download URL zen_engine-0.43.0-cp313-cp313-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f2e1a24b05beb866a8dd08442e3d4cca1361c9495e292a292171c3fc710e2c75
BLAKE2b-256 checksum
How to use checksums
06e86a33fc82910b6cc7bbe01784376369058fd3feb9ee90a2ab6a0ce3bb5016
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

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

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

Download URL zen_engine-0.43.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3e938df3df1acc42dc3b310a87117bf7a5e99643c6bb34e7f667f89fde4d5e78
BLAKE2b-256 checksum
How to use checksums
752cb85e8275ab2ad79a1daa03e10a357c5bf0b6ff7f600e1724f114ae57de61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

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

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

Download URL zen_engine-0.43.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0f227a216dc7d0239f5bdc5334e0fdf1f943863988cf8286b1543060ce56cc59
BLAKE2b-256 checksum
How to use checksums
789d09d58118727a400a62adbbd8d8a9eb64dbdacbab090f44f2ffdacfe4c86a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

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

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

Download URL zen_engine-0.43.0-cp312-cp312-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4051eeaf967006cb8187c5657141e4da0ba5aa65ba30df870c629ff30c31817f
BLAKE2b-256 checksum
How to use checksums
8653040e448d46b21a1670c6edd80f139b4c660765e0e692fcb5e13ed07ecdec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

Download URL zen_engine-0.43.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5f65f41cfab63b741c0dc9fabb637a61627bfa32e48b72d83fdf3165d6adf134
BLAKE2b-256 checksum
How to use checksums
0739b0339a553872357ef54ca836ac90729e27a668deaa5410b030fa04afd228
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

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

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

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

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

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

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

Download URL zen_engine-0.43.0-cp311-cp311-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a774d44933ed0d0e0d42d96369aef47845103f58d123aa3d750d9ca363738d34
BLAKE2b-256 checksum
How to use checksums
90a190ef252971473ef939835cb3331fc589b66d4e3a29062f5c2d24855017b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

Download URL zen_engine-0.43.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a3441681cd159bcb7e75e105f59a411099d140d81d22be5beda08aeefb295169
BLAKE2b-256 checksum
How to use checksums
618f424894c7e69f0b18f91594b18b9678a2ed824766cc07d5155bd9d7fb025e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

Download URL zen_engine-0.43.0-cp310-cp310-win_amd64.whl
Size 4.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
186bb479cb56148d2deb13dbddf1704db7ff159c1d443c6a3593617370bc8b2b
BLAKE2b-256 checksum
How to use checksums
10a9975e8c54c7c844a94094569e304c0a00c57bab7bb7b616dd619abd1d14ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

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

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

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

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

Download URL zen_engine-0.43.0-cp39-cp39-win_amd64.whl
Size 4.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
6525f7fce2c2a9e8ba6002e4e0a195466d2431bcf8ff5269df5a8f4b30a7ee7d
BLAKE2b-256 checksum
How to use checksums
9b445387fd04db870331af726b14f5364a0a5b250ceb4270baae5629412bbcaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

Download URL zen_engine-0.43.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7280cc501ce921b27d15a4fed640fe1813fea4fac1796b48a9bf7ff96a2d0875
BLAKE2b-256 checksum
How to use checksums
15b759b646bab13bd7c48853b485ca8f125f7a87fc885dd4ca9867dff2bc6912
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

Download URL zen_engine-0.43.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e648b126816f7d7958d7a28d10a9be0a9562527aa2a359b6028ac2c758b6ee1a
BLAKE2b-256 checksum
How to use checksums
51851de6130d7612a57419684a56bb15ee48ec78b0e92426f3cc5731e7048093
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

Download URL zen_engine-0.43.0-cp38-cp38-win_amd64.whl
Size 4.2 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
f27456d43f06784e540d50cf9d305948040b2c10e0f8b95fc16a21d52a6bc5b0
BLAKE2b-256 checksum
How to use checksums
0890aed413b67e582a86c3f7b9ca616d264f931064fdeebee702a832c39ac35c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.4

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

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

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

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

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

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

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

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

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

33 release files

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