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

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zen-engine 0.42.0
File Size Uploaded
zen_engine-0.42.0.tar.gz 184.3 kB Details

Built distributions (wheels)

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

Total release size: 124.2 MB

Release files / zen_engine-0.42.0.tar.gz

Download URL zen_engine-0.42.0.tar.gz
Size 184.3 kB
Tags Source
SHA-256 checksum
How to use checksums
fc28b7b7ae283e5ca9210fd0366744f69676971d3b3086d95b886b6d8caeaf01
BLAKE2b-256 checksum
How to use checksums
f09950506047d6eceaddd0f9fc64c9f6e22e870bbf938d3de53d45d28db4a42c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
3571f5fce7348dee7f5aed68b99ae061f228e43bc257148132dbd47814735cee
BLAKE2b-256 checksum
How to use checksums
3149b46fde5fdb96e586e5ca7a060f0ab7680b3ef0ad01579cb4efb2c33caa98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

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

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

Download URL zen_engine-0.42.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
3d5f8b7d37f19c82f12da83f8880dce714fdce84c6e9fa020cd9d896c5c10ed9
BLAKE2b-256 checksum
How to use checksums
36a62e7ea4020576ec485869b29387512833eb2d518b7b3b6d2612bc04223cfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
78ceb34848f1e2effa28143687f88d8019041868fff3d8fa5e5a555998d609f3
BLAKE2b-256 checksum
How to use checksums
071fcf0138d0ad426859b2546872899b3a5c1e1004a45591947baa47f936b02d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
10c84a86dbf40d5599eeb11706a605ad2a0afd82da996050f73637e1d72266be
BLAKE2b-256 checksum
How to use checksums
7012fb74891805fb6189475f3b7ceb930bf8d0eebdee90fdc59c192326442082
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp313-cp313t-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5eed2182163ab2ac7b9746e774716c9c52bc4c20f51ff17feb57b2d4eb635892
BLAKE2b-256 checksum
How to use checksums
6340c34b38ac13d2a3b5a1b4df81c120b6a4871d8a777748fde015967ab96366
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp313-cp313-win_amd64.whl
Size 4.0 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
537a30ff08990fa3349c82f894185f2680c50e336708b32ff1815bee9b35c24c
BLAKE2b-256 checksum
How to use checksums
cb6475c64338a35c5877e7f0119d79107d20488a1866f248acea8fad23329006
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
dabfdc653c9267b8b1e85c73d13afa2690ca650f3304bfa26e097e9ec1166126
BLAKE2b-256 checksum
How to use checksums
d4af5e37ae62c7a3a0b42afc7a63ff98fa088e17405d7ed14a8a0ea613910d95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp313-cp313-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6ba0200403763815565a1ab0e3b43de3c53bad64b0a0254ae98ca0d40a09e160
BLAKE2b-256 checksum
How to use checksums
3fcf945c85064ccb106d7f0df0757167631f5ff6ec7a76d2555e01a3d503f3aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp313-cp313-macosx_11_0_arm64.whl
Size 3.6 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b3938f72f274ee1ce9a597370e443256c21dedd14ac980eaf40c99d713b77a09
BLAKE2b-256 checksum
How to use checksums
12645be058e5c311727b1d7c23b75b8b71c4f5a5ff573bfb2111c51019fd0401
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 3.9 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3e6d949cf205dac3e54c2a675c8bc2901867efccaa845e0a2d7a1f681ba2514e
BLAKE2b-256 checksum
How to use checksums
54083e47f997a2e9ee3eacc02d3107454430ca67fc78fc04d42840614b8de772
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp312-cp312-win_amd64.whl
Size 4.0 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
2e8c538cd962cc5fe44b75dd0634d2b8f8c8c589c2d1a79cad8bcc34e25d9694
BLAKE2b-256 checksum
How to use checksums
d229fdc91ddd7e1c2dec573d495b6f28dcbf29da31e7e3bfaac0ade386ce76c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
74587255702153f6547328a6f3cc2bf3cbc1a2186de07cb5ef9ddd08677ab1f8
BLAKE2b-256 checksum
How to use checksums
287a2fd7efeac350b30023e663c03ab0fa03082b4a31cb91531ea38454be469c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
7071193936a9b4ec53b81b43e34673454fdf57d60a0ccbec7ae058d08c58eb88
BLAKE2b-256 checksum
How to use checksums
b06f98b11221bb7dfa5665a4874717fffc380b8198deac9e5c267c15d81c001d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp312-cp312-macosx_11_0_arm64.whl
Size 3.6 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3bc27a46979aa336cda00f9f28f3f3f42df0caa09cb00196ab840e4d4f15a1c9
BLAKE2b-256 checksum
How to use checksums
6dfc9d00e27feff31765fb6b48f958ff87903ba502556759ea2c60f6af0dfaf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 3.9 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
42be2c8232b867770083dffda85916916801557963451489cba06af15b2d2a5a
BLAKE2b-256 checksum
How to use checksums
8c15103276afeb435d5ba5a3d73abbce2b3bd5edd97a22c09558621bb4afba4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp311-cp311-win_amd64.whl
Size 4.0 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
eac62c4155224997ea23016867434df9bc41de672af515bd116b365ac1c504d2
BLAKE2b-256 checksum
How to use checksums
6a780723942f4caf8ddd5d72e9780e75b2821f213c4f5fdceef495aa05c56e09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
238c0e149e999bbfc385498d6c5dbf951e17a1cf7fd008640a63b62e4bd19fad
BLAKE2b-256 checksum
How to use checksums
1821fdc52d9977d4465a5bf30564c7daff7ad08425f128015007898da0a7a5fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
01cb72abeca7afc9f9e1ff526f1f1ea743034f7155abeed832b9c7996366877f
BLAKE2b-256 checksum
How to use checksums
038ed5826c970b262e487828fb51a103c1b6312d3d5e09a8ff53116c0d5ab1a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp311-cp311-macosx_11_0_arm64.whl
Size 3.6 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
58a652c0a56c240e2a2445adf9d6a16175e25e4e40ec7e5e84e84e519c2ee1d8
BLAKE2b-256 checksum
How to use checksums
d5ad5af20f793093fbdd36442d3a5f155f9065cf7fbbd3b8543d32b89ca7e827
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 3.9 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
9e623426cb362adc9006638cdb4aa8d042db7639003374230aabde997b6dbf7d
BLAKE2b-256 checksum
How to use checksums
ab900507e55357014a2ce4d7f25763ccf486723ae8e3e8599808129ba90ad565
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp310-cp310-win_amd64.whl
Size 4.0 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
13949fa7d0c49ef6427c1f9a3df45a319d52171732230d10aa4a8c8bdf4c314b
BLAKE2b-256 checksum
How to use checksums
e1f5ad1ba03cd53af2fe322a740aa37f67622158f575bf70db65a013f3f554bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
cf576503052f01c7a9493b649987c05c4116945a0eae43db20d8ed83445b5184
BLAKE2b-256 checksum
How to use checksums
2a92cdfa48d177a5112091339199a7e69b79831a65f964648d1e66e0ed74d13b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
bd16cabf4d0596d49b00ac738cd9631d1a294166b6f60b61a1e02219d6ec1157
BLAKE2b-256 checksum
How to use checksums
249846e07c627e6a1e69a193a3195540a7be0b23f61837e01fb0eddb80bb1b9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp39-cp39-win_amd64.whl
Size 4.0 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
361809c296527320b33933e6a786a46eae809bb1175a69f9183c367d794146d1
BLAKE2b-256 checksum
How to use checksums
3fa3bace2879556772301fcd5195709df6ad998bcd43d6989cf9fd3b36effad3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9e0ef167a6895c56eed1d3891dadd3ffa55b7b2c8ded50146e9fb8d38c30b163
BLAKE2b-256 checksum
How to use checksums
b19e1c672551a01e70d9e9a0cd633a3c86203a215adabcb641bfbaa04f165067
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1e13e58d145b3c4192f77627679e8159f863e4d5fac45db56b7191b2edeb8d11
BLAKE2b-256 checksum
How to use checksums
57d815f00aa50a695d39e79d31a83f0499e2203a08f7272c6d234f99226a4c8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp38-cp38-win_amd64.whl
Size 4.0 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
18ae8d55efeeac045b105d49c31250c5393ae20cbaf5165c6d0060de0ebb7f50
BLAKE2b-256 checksum
How to use checksums
b3cd70bb70078cfb3832a9295608e81e27799e2aec31ae031919cafda77956ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d21b89457912a392e14f8820212fbd2870132bf419baddbcbc0f6d4f772e30d1
BLAKE2b-256 checksum
How to use checksums
2fc42943810c2a9fe2dc3e86520b743d96039b1af7a47d703916540a7bca55a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
45245467af0efaade3bc4132ca4b61700b1a8a04451cf095e248e50ea6469088
BLAKE2b-256 checksum
How to use checksums
9a0c03fe2f5bef5e4a28da13e80d2bf24e70664afa40b68520249060a46d070a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
89b897b437c70e1036dccbea8f7db8050f8be49c10be55d95da6d4e7a16e7d02
BLAKE2b-256 checksum
How to use checksums
83d5a405c0a668e60fc80d90953d52886c9abbb07cdef66630f642783b2d3d9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

Download URL zen_engine-0.42.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
73a9dd7851bd33ae735430a7d3b2bd7a55d9e3777cdb5e85179bff38fcbf63b8
BLAKE2b-256 checksum
How to use checksums
e3e33e2db4edbd839c4977d14d15eaffb47ecce5636242181dde55fd52bd6cc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

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

33 release files

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