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.29.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.29.2
File Size Uploaded
zen_engine-0.29.2.tar.gz 168.7 kB Details

Built distributions (wheels)

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

Total release size: 99.8 MB

Release files / zen_engine-0.29.2.tar.gz

Download URL zen_engine-0.29.2.tar.gz
Size 168.7 kB
Tags Source
SHA-256 checksum
How to use checksums
51a1ff0d95c8a21febc84039f5eb31716c7f6781c1b03d4bfd3023da906a96f1
BLAKE2b-256 checksum
How to use checksums
95ff4cd1370855f80604aa74f202eec9883b2270f1de7fa459fec6a3be146a44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
0ce89232cb95742fa4d54afa5346a8c54665de457bcb353ff762e60be71b2e2f
BLAKE2b-256 checksum
How to use checksums
7c5fae94d0eac904598172eec927e11af420527a03e2b913b6ef0cace439efe9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
912793bef042909c8e2f077a63d389f39f1f7323b4edf908e20e4f3fcf1f7c37
BLAKE2b-256 checksum
How to use checksums
862ebb61833b976251f5a2f425b8b6972c1ee931f5818e9961f648a59c63829d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
235388e2281fbd9c2bc985107ee31593ea20738ae4adb677172136321d0f38c7
BLAKE2b-256 checksum
How to use checksums
65610ea48bc2849542047bcef8ec4d62cd909c8f42475ac61fffd0d100799440
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
cc4c38b55c3faba62d80316372a21d8190a6b554a92c9578390b46d24ca8be5e
BLAKE2b-256 checksum
How to use checksums
a0ed7f30a0faa275cbae7a6064dd2d718ff1a42ddeee0a5b665ada4f17aaa053
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
dbd1496aa48173ae9ebe7e82f6524642c850645219e95e70d17e457275684530
BLAKE2b-256 checksum
How to use checksums
91bbd497773f7d4bd2fddde55940911600ce7ca675b08f6e4b0dc823a310fbb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
dd57d494333f9e95bbce26ea6bbe547c6cad823d14760c6a54f5dd97bb502254
BLAKE2b-256 checksum
How to use checksums
d2134a91803f7300eb5077a38586974260849843e8b2c23c16b533a971944ac7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
4445850f5090fbc5877aeb0854f9cffbd7c5fafc099e83da2bcc2a5c13a087d5
BLAKE2b-256 checksum
How to use checksums
45092de39e644e0c7d8cce5303b4eb9b742103ecb8fa6bc5cc38c6ba92abcc22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.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
49ff7086a446de5d8f1dad98f9cc1b325c26a1c79f8c194b7f8cfcebebad15f4
BLAKE2b-256 checksum
How to use checksums
a6173a035796234d59fdc2d85f014dd44705af87193ead52deeebe25e1c670e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
b617cff8c14246199f8e378295b0b7f27257193eb8021edd9d56d73480668471
BLAKE2b-256 checksum
How to use checksums
b700fe61ed1960c5158bbdd3929c775e83c483f464147ecd5e9f64a5383072a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.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
c0e0aad09ec5ca5251bc899b4bb724744dedba5a7a2b061c873307900b3ad722
BLAKE2b-256 checksum
How to use checksums
1c5d5f71aaa551f89ebb4ee8131f989044dd185c5de530ea568cf0b16ac6cd9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.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
cc14a9fc72f2e8993b2b81983a476dc181a99637813af33421fd6f8aa0cb9cfc
BLAKE2b-256 checksum
How to use checksums
3ce80c78cee31bc58e36330a80d0d9159948fc277df8095116159ba06ee86a79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
97a1750fda60d79ea814299744aca5199a990ff8dec20ff23313543d08586c3e
BLAKE2b-256 checksum
How to use checksums
a765d1cc9ec6ba08ec4e66fe41f5791405cfde0ef669f69a5bf03b99d7a65b3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
f9eceb2dee1dda0fe883f7f47bd5ff7fecec65307085d12df59428f97297db8f
BLAKE2b-256 checksum
How to use checksums
fc2b7bdafa2979b6fa77aedb1a236fdd1f55f14cf8226be9b6402dfaa82c1f61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
9c88e50885005f3b262d1ac3bcf3605c4149975b9e6e84f1ec579461e4df4c43
BLAKE2b-256 checksum
How to use checksums
1713dfc6c90de68f69e860832d8449173e78b53ddcf1d2a08f9338365f957ac6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.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
88e5694257cdf70fbb47ccf6ec7f3295f9fdf25b37d0567dabf944301e090d3e
BLAKE2b-256 checksum
How to use checksums
ca6df7f22a1942caba212a9e93e12da9e522f3a5854611bb688a00d9e34e4410
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
de7ff6b1ba1d3d982b407a60c5a6d72bbf3da130afb1f6a85c8b04f7086202bb
BLAKE2b-256 checksum
How to use checksums
3b13550fed0f0a61338a6242f9ad528c60e7674d4ed38195cecf601aaf2ad74e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
d2e0d99f1dc3107ae9eb03d07f8a4dd86abf7be55ebfe6f69fabab04c96d3293
BLAKE2b-256 checksum
How to use checksums
168ad5ce56dbff85733e007f593b7430134969839d6904b4de7e90afc9ba97f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
fb64c3043c08d236fa1cf821f0c52cd86f904293b23ff01da8f2cf9573d56937
BLAKE2b-256 checksum
How to use checksums
6b9758d7a5cafa2375cb0d22ebebf7f9f095ddd7751178fddc89d06968482b66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.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
8b7f317c810566397c065f9b22b5434b26117c22865ce542a4f330cf9bacad19
BLAKE2b-256 checksum
How to use checksums
bc1a360ff27d67863c990415d6e4e0cdf09ffaf78a663944ec59d0c2f9880627
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
5ec3505075f6cb5cbb535eebccf3d9ff0535086a480e3c4d07bed971fc82c577
BLAKE2b-256 checksum
How to use checksums
a669893cd217d2fb276d528b32bef396e9f81b15da22edeb943ad076590673d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
e9c81097a1fe891a845877835a7a971ca62daaa1fe4abcd185f792c6455891f8
BLAKE2b-256 checksum
How to use checksums
aa724587352eecf12eaf314f82d5fe6124bfb8801724660d77685c818d2bc437
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
b235d14a4f85f34ca98cd7d1837eb55e7af480cb5a0a36b902924fb3aeeedabd
BLAKE2b-256 checksum
How to use checksums
7982c0ac9b1f3dada7bbab2afe8edc89bdc57a13be019e802a8072a9eb854b73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.2-cp38-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
54ba1ed3ac46c3515a69602b17857cdef84cf6e1f67d0011bb2de71e09e022a4
BLAKE2b-256 checksum
How to use checksums
465be5ddbdcd09045226b12f7d49b388159bb3abb4a26d40c1302375114ec007
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
346de625e5e15c841b7b1efed618da6864a79676a702fa6b54d0e42d7b31a7b0
BLAKE2b-256 checksum
How to use checksums
6c38d9648dac7b50f49e020fe5814bbd1dd5fae6f769d17dadb56a8a76f1da5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
c3851e66a8a1effa2e07d8bd81dc2a7c2045b159b8caef619e7657e620197e16
BLAKE2b-256 checksum
How to use checksums
e10dc58a0e4678a21863c212799eaa018143225f3096cb23a0e5a62a1b0a8f0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.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
df98f080a8e67c21b627ace142fb95573e4682d5d0d047f204b9b42e43ec7a39
BLAKE2b-256 checksum
How to use checksums
8f20235f42d5eb1dfd0bdd8f89c29f8080e10bc36a1292eeb56326ab91670154
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.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
5baaded95e8231c3718f7a074ee81cf09bae91cb46c15571237ebe2eaed67725
BLAKE2b-256 checksum
How to use checksums
47d061f681c69478bc47057220d66ad73e783f05f672451e9d518198454bae96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release history Release notifications | RSS feed

2.1.3

6 release files

2.1.2

6 release files

2.1.1

6 release files

2.1.0

6 release files

2.0.2

6 release files

2.0.1

6 release files

2.0.0

6 release files

This release

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