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

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.33.1
File Size Uploaded
zen_engine-0.33.1.tar.gz 172.7 kB Details

Built distributions (wheels)

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

Total release size: 94.7 MB

Release files / zen_engine-0.33.1.tar.gz

Download URL zen_engine-0.33.1.tar.gz
Size 172.7 kB
Tags Source
SHA-256 checksum
How to use checksums
87edd668f785078e0b264ba116d8c0a5d82b3a4d57f294e147629c8db795e37b
BLAKE2b-256 checksum
How to use checksums
f688b18d75273cb51ba6b965902feb3046c2dd54d093cd5dcbeb9d9999b711fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

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

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

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

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

Download URL zen_engine-0.33.1-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
e11c6bf5f4ce756739d4a788dd8bc6a7369ca145d82b6412786d45b7ddfd6197
BLAKE2b-256 checksum
How to use checksums
dfee6eecc595c24bd59f8501878f0501beba5ec912e2bfa026169194e56989fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
58426936a61001ae5786a86bc7b1708f7f35b00f57574beaaa9e40e08e663f37
BLAKE2b-256 checksum
How to use checksums
303cdb75efaf460b694b98ec6ed19a7d00a2fcfab2ee40a46fd171dcaedb77c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
50bca5165d7ebad92f4e2671ccd96c5742b7a00aa6233e867e8a6b9b0c36ea9d
BLAKE2b-256 checksum
How to use checksums
dc29a409eb10ca603e50b6016ae0f5d7c9a22136491ec35c281ac4b798e5dac6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
86f092bc99941c1fa2f90ad0ca87804111658dda13cbdc3e5fef05b16ef4805a
BLAKE2b-256 checksum
How to use checksums
547b691a286b4c136eefa7da2f32c6017026e21cfbd4937dd8dfea93d06b6b96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
a204c249423268e4391ba5e470afacab6467ba108a0cf3cda9c33fc80ee7d3a1
BLAKE2b-256 checksum
How to use checksums
7ba64409b2da287cfc96c9d90f3a654684585baf08c9be7d24947d2e88b17560
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

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

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

Download URL zen_engine-0.33.1-cp312-cp312-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e045df698679b9ce79ee6f20331463c029421f41cf2f83223e500b0a4f31a5b7
BLAKE2b-256 checksum
How to use checksums
d6823e8d8b93df6e76da6d952192b470ff12ac4d66a0d3190f29a3ab53884e3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
d789cbbbea0fef76a584b7a5811c04d23130ecd430f22d11008d4e91c7517336
BLAKE2b-256 checksum
How to use checksums
eeb865f4e332e793d7f6c0eed4aabaf5073c409fd62903d55e8e62dacb5d469c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
fe65e7161cb3d6c53ab5c5b4e5ff8be251fbb0864ae493ae588646a7102ade16
BLAKE2b-256 checksum
How to use checksums
cf9ffcf8a5a17dd9b76e9abe299cda5e3c85cf9e93641d0e067a3971d691c8bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
2edcdb6d8d7add4fd62b5b33d50ff7ed75606d50f3de4b868057d5638389d746
BLAKE2b-256 checksum
How to use checksums
cf271d68d40aeb36cde27f25eaebed2c48e21ac3f10c8bada3299ffc9cf9ae9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-cp311-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2497d4571984c14563b482addecc6f5db80ca3b2a23cf5bc9a4994b9d4c12e33
BLAKE2b-256 checksum
How to use checksums
792a95706da18d7bbc30ccaab83e3e87a4f3261b09150afd444f2a7cb730c35f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-cp311-cp311-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
30844df94ec4303d0c07ca55c2a0643b6f3b171b8806e360ce343a70029d74ee
BLAKE2b-256 checksum
How to use checksums
c9b5f5adf1fb7252f07a7b093d8acbec8a440c43a13bf001169a382774fa15d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
60c81483879560c44d2a80ab73e0931aca0edc01e388408113c460ae6720d2c8
BLAKE2b-256 checksum
How to use checksums
0fd3197b4c01f42ba8e325727f029b5fcb019c98f2916f6afce0b7cf04329029
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
1e93646a58286b496999a0444957fe602092f7281283d23c1910578b8a766ce0
BLAKE2b-256 checksum
How to use checksums
375e91d884c81a2a65aeef77259981ddc92b97224decc2e366367a7419633d26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
32b47ad9b90051bed1b65aea75c14d874f69645bdec101be12f4697f57e2ce1c
BLAKE2b-256 checksum
How to use checksums
c6eb9b06df3806a136104b9228fe705722850d94160cc81c8c86df9529b30cfc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-cp310-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
b7b7451885441dcd8a32b318ec2aca327a8a9b9f52975b11973c1f3564bd6f0d
BLAKE2b-256 checksum
How to use checksums
a4ca270406307fcf02939e5b67b7bbf51ac3874c845ae49b76bb2ee201f7d2ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4a1efc44d7dc03d14e0384948060cfeb130bdd0ff602e87a13540cf1cebdd1e8
BLAKE2b-256 checksum
How to use checksums
23b658aa53dacf628064381e65e7b42cd7264d720548d1fa73e8fcc409af53c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
dc3779274e49ba04a6cd8c4b5e9413d3fd7878dc7a568b65126cc7f1749b6fda
BLAKE2b-256 checksum
How to use checksums
aa3293820e5fadbf1fcfc1aa42ac3f62c223a3898af60d2d320d0985851bf303
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
b1eb12039bedb0bf78b520409b320893371b2a23cfa24097368c34e34da308e3
BLAKE2b-256 checksum
How to use checksums
e593ac5cbd81f781805114d13ad66b3408a9d618427e82207052ce6d540fe395
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
5656a867bbaaca5927b4170048adc221e551e9a68d59b811a53e32f7361086b8
BLAKE2b-256 checksum
How to use checksums
7430e760a572a5d01db8251f456a7ae880a7cc5e7e1dc89ca91401e8701ef8bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-cp39-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
5d4b3e80f90f9c3ace8412e6e48662009e4caa94053495f85a36e5335eaadb53
BLAKE2b-256 checksum
How to use checksums
a0021495209e68bdf64e4318fd873fefdfafcddf0e8b7a2ecdeb61b7afb98073
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b30492b44b98b55505f2cb5839ce1dc46770c1360fd4620a85d2621704b06040
BLAKE2b-256 checksum
How to use checksums
15de36bd2f0f28f6560e288f93dd3e7fd9319c61aaa63ce105f6e23952c65170
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
4cbb98e2a07ea9911110241af9c4f67385a6f00716733486ad03293079903b0a
BLAKE2b-256 checksum
How to use checksums
be741ecaea1e37171d14e7e6cbe4c94f734d2bc7ec8bf5a4351751044da91640
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

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

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

Download URL zen_engine-0.33.1-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8a3f9d64fcc0ac726833b76908795d0cb5aac0b70d1d03372addbbcb283a651d
BLAKE2b-256 checksum
How to use checksums
26b851baaaa96ffb0ab315b9cb94912c2d31b9d4d73a228f07419519f0274f3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
6365508bdfa8c843a7e167753057fe8ebf194a611ef7e1dc1b338518b890a92a
BLAKE2b-256 checksum
How to use checksums
6fe1e57a922fc5a779bbaec6fd7865cbb6443765de08cadbbe06f119e22bc17a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-cp37-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
f2e97541447080ae46427cf43da7d504386fb3be644e62e316532b7b4317ab8b
BLAKE2b-256 checksum
How to use checksums
1e13ed4a59616de8b01695d4775a917081444647181c98d02a4411ff0d4b1ea4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
153bd9e1da7c797f9a8a604f456c1d28c33ff7ae618c1de6cd7f0a5ea4cf2add
BLAKE2b-256 checksum
How to use checksums
1f847c7cde2e3e6a04946f92ec016c0421b805f32b95a292ce6fa08519e1dabf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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

Download URL zen_engine-0.33.1-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
f4564705f414ac605c1fe8e626e2e2d5ffc5e4e110cc78995e0bd247c82a62d2
BLAKE2b-256 checksum
How to use checksums
7e151b9f0e846b416ba9e010530ff3410e7153a094470abd5478a3b8f6714f3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

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