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

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.24.2
File Size Uploaded
zen_engine-0.24.2.tar.gz 157.3 kB Details

Built distributions (wheels)

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

Total release size: 98.8 MB

Release files / zen_engine-0.24.2.tar.gz

Download URL zen_engine-0.24.2.tar.gz
Size 157.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d4c748127a231a58959ff1f929f26b4bae2dfb9af78d9bac72b1e41a96dfc3bf
BLAKE2b-256 checksum
How to use checksums
17cc8e669ff139118b4162d1fbd6c71e753820bce587e91a19f8270e41ef36cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

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

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

Download URL zen_engine-0.24.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
358b98de7abb6096dd09703c64c06a82025938cb4f6d5fe150c034cf06126f15
BLAKE2b-256 checksum
How to use checksums
1f3dd4931e82fc5a51acd74b06207dd0c381339a59074be0136e9aaecf59050e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
333eeaabd88447c4a21891d7083b7c2b22f65375b1e2cb27d1c8cbcb9aa6468f
BLAKE2b-256 checksum
How to use checksums
10edcbf03b00bc33fc9f8400fd60a2210d56582cab14e70c15518c83f8981748
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

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

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

Download URL zen_engine-0.24.2-cp312-cp312-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0b6093199203fc37fa1370f8f379ff9697a3f222d03eab0b3574ee350c0f9434
BLAKE2b-256 checksum
How to use checksums
c90cf0c2de1ba0c1fdd8da12340a8f70afc02878dd58051637efb432fb1b1515
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.24.2-cp312-cp312-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
25338392ce3ce109ff60f6ae80860982929aa702ca82fb6e99b8b2288a07d5d3
BLAKE2b-256 checksum
How to use checksums
29bb2697c309c021df50665cecf7fe92a1580770da6d9fcccda9c7526d88e317
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.24.2-cp311-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
9c35f0a1f6b52694b2e67189fd6add8f66186c187105a3d2e4ecb5cde406c246
BLAKE2b-256 checksum
How to use checksums
0720d67cfb7914cc26fa1e808c4646f17cbcd418e9ba7ef583b6b081e49d1b40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.2-cp311-cp311-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c2ad8d9ed23bf1f3cdb5e32e39634a769597026cd7f9cc5150f05443e4221791
BLAKE2b-256 checksum
How to use checksums
2129cccc0665b449819c84ddcb7a1a9553d5d5747312cb39a2bd4ed4b252cf8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.2-cp311-cp311-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
75fd2e9669f8df6afcd48c86466f53a8263f402b28fbd087d239f3a2f01b441e
BLAKE2b-256 checksum
How to use checksums
8d30a9abc6a39692be35292e94ff6b606098fe409792f622e14b59fd40184934
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

Download URL zen_engine-0.24.2-cp310-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
7ef0f78dd28943d23353829b3c05e56985f692ef8f0d621c054ca13b984124e1
BLAKE2b-256 checksum
How to use checksums
184abf866f5fc4c791cd17feb214b77016a675d0d226ab5fec76e0a2f4f114ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.2-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e96ea113967d1f7549b688ae2994c817c6c77b701b2442867c57fdd1086fa4af
BLAKE2b-256 checksum
How to use checksums
3df77cc3e9edb2ef16299b11592955dc48bf15d5ca5a6786f267f7fdd526623b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.2-cp310-cp310-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5fecad693c1922c946f1accabdb4b222728e3c3b7e01bfcd1485cbc7c29e848c
BLAKE2b-256 checksum
How to use checksums
5d76234965b2740577090473b4212bf0fd974277246bd93269da356d1a714d1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.2-cp310-cp310-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5a7ac392727d6f9da8fd71480888a182275c49473a51bae90c2c8b42a1f91ef2
BLAKE2b-256 checksum
How to use checksums
f0ef62ed6346981955db7ea31847fd356881eeda8b494373946e8d51549afe47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.24.2-cp39-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
1e86618ea04369f939c13f7d7dc7b631e20d5757acbeb4f33ab973fe1be9db52
BLAKE2b-256 checksum
How to use checksums
be2e2347cb4d8ea0857b679b957d6da858f009f27e23c0bfd1961a35c6aa77aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.2-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8529462df0883b7b99bafa9f02bd28a2e535bb4f7ab58364b24828cbb7a832a0
BLAKE2b-256 checksum
How to use checksums
1ccd2dea6206c5db36dcb9334ce11b6eb57c7dedffa7b78bb7231e9a1b7c7df8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.2-cp39-cp39-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8e17c17803bc3b76a1e0943a6d932f7f03668e27e9a6b5c00b612ec0c2697746
BLAKE2b-256 checksum
How to use checksums
83c0868ed38f5c1a5f0ffe79fa003f0f78399874ce411d65b6db4af8c3f399bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

Download URL zen_engine-0.24.2-cp38-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
1484f4c60a94a007fbff1374b299d8ee30a12b3af001dacc9a01af18b99c6f1e
BLAKE2b-256 checksum
How to use checksums
a60fd24fce3c077faefe8e6dffd64adb47f49d80db76436f51104cbd2ec962e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.2-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f6fd7f63553c828e384e1cfef56063f7ea447bc086a551305f3b9bcf09272eae
BLAKE2b-256 checksum
How to use checksums
57f35ede1b871664e33bd11b93ef35035d2ff504fe79ca5b641438a763133970
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.24.2-cp37-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
69dcef0f78e7d3116aaf2ef169349ff94fe325c8792388f755cfa55a35469ebc
BLAKE2b-256 checksum
How to use checksums
a7dc6c6ca692e40bd23bad4e4c4d262dcf6a358cbf1b7c536d110bf624b67a4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.2-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4a2d1e6092cfe233d65b8e61dac5de959de6a3cf0055ae25466407e857a94d08
BLAKE2b-256 checksum
How to use checksums
1cf6dae8365a076cb12c75336cc763080d079ffd78dfce7f2f21c86ccd70f0b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

Release history Release notifications | RSS feed

2.1.3

6 release files

2.1.2

6 release files

2.1.1

6 release files

2.1.0

6 release files

2.0.2

6 release files

2.0.1

6 release files

2.0.0

6 release files

This release

0.24.2 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