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.20.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.20.0
File Size Uploaded
zen_engine-0.20.0.tar.gz 119.7 kB Details

Built distributions (wheels)

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

Total release size: 49.0 MB

Release files / zen_engine-0.20.0.tar.gz

Download URL zen_engine-0.20.0.tar.gz
Size 119.7 kB
Tags Source
SHA-256 checksum
How to use checksums
58590a05058dc37d3d3b0fb2a954dd0c48b79d980e05a16c21efa5a80a4fecf7
BLAKE2b-256 checksum
How to use checksums
08105686b9841428e4478cfc86623f1da46485dbbfd2a5374375e96b30a27412
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

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

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

Download URL zen_engine-0.20.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
d3dfc9341ffd3c98ba1b3b4be059daa744ad77eddd1fd376906368096694cba6
BLAKE2b-256 checksum
How to use checksums
75a9b0abd85fbba142e9cfe179220a47aee40c0cb02f1176a13811dada609147
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
9e5dae63777ba099fd4e273d9b518d4e5c1981c96a35a6f58cbb1f7b0e8c30db
BLAKE2b-256 checksum
How to use checksums
06a34928af4de0678be6d579dea5d2dcaa41e01d9869d41030d7c821c71cbedf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

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

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

Download URL zen_engine-0.20.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
533fffcf4546f33c839ae05eaef259dea7455652da2bc6e511883195333d093e
BLAKE2b-256 checksum
How to use checksums
8665cf1c4ae692915cb633b67790a8074a3e85cf150bbdbebb52686306ab9538
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
ebd4b259a3f56d1cff5ddc56191aecac1a61e426db31c53e7cf44b6725c81fca
BLAKE2b-256 checksum
How to use checksums
bfc1d0e3ad1076ccec709c344eaa4ea32b33ec451987b83fe670dc2e049c2d3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
a8e9d815e604c866e6e618e50d85f3b9db12641ae4c6eba7e5e796de1c90c37c
BLAKE2b-256 checksum
How to use checksums
ccba742716206147ec033801971fe74bd3f4eb8ede5c997b4e610b7c4bb87cb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-cp312-none-win_amd64.whl
Size 1.6 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
85ae7358f3781994d0300209012eb192852a8b966191cfdf78fcea4eaf1a1990
BLAKE2b-256 checksum
How to use checksums
ed8209d6784a5f4e803ed363250e905e9147c066481cdb3c87d411a9aeb36da7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7724556da1a00d6ecd507616ccb699b39f24020c471d456d67c7b16d119e36f5
BLAKE2b-256 checksum
How to use checksums
fd904c2f57d789e75b1dfdf40512dd1933033c9413e40ef926c32b387926ba6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2f4428f3d9a294b6a6c31e9fac9ef6e5bda5a7cf34c1cad1087b19675b37358d
BLAKE2b-256 checksum
How to use checksums
6f0b232118a56c04f83a21da8cadfa4436f63c5f2f05b60fbf52337fc668c97d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.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
6fd5affcc8b8fc76d2f6b43f6f3c4dd9c98d9e98b2b33d1f25960b32a4a483d0
BLAKE2b-256 checksum
How to use checksums
9026bd6f1a6bd25d150e945650f410e71ce425e3eeb4e858bb3414c53b8c2ab6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 1.6 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ef0233380a056c9380ba3a58141440351cdaaca03891c4203dc210c444e55704
BLAKE2b-256 checksum
How to use checksums
63133fdcb1c996cfa93cbcb7f6329e4e2c3feb39ca5ab104f1a650a5e938d164
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

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

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

Download URL zen_engine-0.20.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e5a58117f5c37e699e03badfd512da4d55fcd1084df44249bc6c236232c83a92
BLAKE2b-256 checksum
How to use checksums
cb914b6139fbfeb2a246027ec4f58056a742ba2f77bebbe920015bdd60f03552
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
537c552be6b7038fa4b5bf0e2cb654e163d1a5a1e3ad57f9440044bf064f6525
BLAKE2b-256 checksum
How to use checksums
05c730b58e7b8cf24805d1149e57d5c38bd509857dc498b2726994c6ed1061ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.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
7251bd0cbfddf99fb0974bb8c4321e7da85150549744d66b1992ef74a1a70fbc
BLAKE2b-256 checksum
How to use checksums
22dcaef52df008efa538c4033d722435dede574cacc35336862ced46735cfed9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 1.6 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5018d20c08a4e0125338185261c565470f9ac5891984614eba0dadbb0620a87c
BLAKE2b-256 checksum
How to use checksums
5d32cc1c867e98d42a42c7743e7e7bd4501764d13b88070d886426cf91d0c317
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

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

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

Download URL zen_engine-0.20.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
562c7dec12be42c9b56e1887f60177913afe2aa68191986f2dc97c0e44e74ae4
BLAKE2b-256 checksum
How to use checksums
8f89a35408ec602eabd85e994b2967cace8b67f1d92f37b1d99a66871bfa8d34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9e729a73fa7471db790ed89aeff85ab94121082123ff2b28a21267cca5eeddd3
BLAKE2b-256 checksum
How to use checksums
3eb11b5b2b4146aa5353d6f706e9dada60a6a710a841436f2c46c0bb9912f456
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.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
d907633932f963b95ce8e00d3a20eac1725d355bbe7469088bd64b8c62b93e7d
BLAKE2b-256 checksum
How to use checksums
933a60bf9ca39baeb2c9095e04e3872b1125391d253bad34356d86effba1ce1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 1.6 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
bf9e72e2c153c817d55cf602c2b0aca4e282ed32f38f15e5995f5c3b7d740746
BLAKE2b-256 checksum
How to use checksums
37c268d77a3259cba0977ffa735cba06392906d329c85503711c8efa1c7adb45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-cp39-none-win_amd64.whl
Size 1.6 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
d572e48773bdb255b2adfb0b814b87fa7564de41f3215d78b9d7d87a963f7b3c
BLAKE2b-256 checksum
How to use checksums
8e0954410a0dd8fd23aed4640d0d51b7818b2a8d231675a1554c8e017ab3807f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
850dc084aafd3d2c23a376c647b6ddd764f674ea0852c3f53dbe7b180a9ea283
BLAKE2b-256 checksum
How to use checksums
59a4c4223f34e784dd1d52c41c5bae13e8a68266cfc722b2df38395a66e13f68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e7faff9e12fa8449b5730eb36e4a1ef93d9a0048f4dc3e8dc86fd34d8cd30b55
BLAKE2b-256 checksum
How to use checksums
bc1845ebc1848624f2f6f2fd866a0169896b9004a2289adb53c1b671dbb14846
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

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

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

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

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

Download URL zen_engine-0.20.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3fbc3e7a572bfbecd5fbf49ae5adb6a8f102f3c19743105db5af13543380c400
BLAKE2b-256 checksum
How to use checksums
c2605ab34f204aa3a4287ed113b71097d7fae9bebb63bf058b6e1199a91c6543
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

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

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

Download URL zen_engine-0.20.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
16535ffbbce261196b709093d2ee4fc99b1b25f57c180fc43701a9dfd0c9462b
BLAKE2b-256 checksum
How to use checksums
b61909e7fc7c081b1dd83af3608c68bfd069dcdcc9e7ad1e7144cb492194c042
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.20.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1063bf4c932fe15f45656154da7202c46a1b8754c6addc265a30154709aad12b
BLAKE2b-256 checksum
How to use checksums
cecba70701fc2495ccf7ab2cf22f27e6e8f8ca92c087aab11df4229e14630be1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

32 release files

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