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.44.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.44.0
File Size Uploaded
zen_engine-0.44.0.tar.gz 194.5 kB Details

Built distributions (wheels)

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

Total release size: 131.5 MB

Release files / zen_engine-0.44.0.tar.gz

Download URL zen_engine-0.44.0.tar.gz
Size 194.5 kB
Tags Source
SHA-256 checksum
How to use checksums
9e7ba991b577d19d1b319f496c23e86c8f819713155fc49fe23f8ba0ddf263aa
BLAKE2b-256 checksum
How to use checksums
ff221c6da62d2bfb4f3f6634e2f65629a8c24a1e894fb0b12620f9a5e62dca12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
c2b990f89f194d63b4f7b93b2573645dda2ac1e5e89afa04522f9e3e10ce2e75
BLAKE2b-256 checksum
How to use checksums
6ed23d98770760b4b117e6d7880c635e6f2e34d25ad93888e823c50a54afb365
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

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

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

Download URL zen_engine-0.44.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
f16153b209ce58fcd43782222d052dbe3113323d8f8016f352ae2b59c7481cd6
BLAKE2b-256 checksum
How to use checksums
25d4af4b333978880ced8503f20edee50017bad1cde85b1a33d5c75b113ef5ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

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

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

Download URL zen_engine-0.44.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
91f90f38aacbc8a59f7f3bd32e91cb7b5d47def81ca2375f0d425d5ad719b068
BLAKE2b-256 checksum
How to use checksums
830026c037d295e9d0d3ee424cc5a54e291796ff8888fc932dc1677684729496
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp313-cp313t-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
4be3ee7007dac5d014594c8c8eff36abefe1e2a06623ddb8592fc0b513b89651
BLAKE2b-256 checksum
How to use checksums
544ba4d499360b6d18066c180a1449f8a671d0c9b47dc70af8e1d86630f6fa0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp313-cp313-win_amd64.whl
Size 4.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
38752776e1e0ba50501a91de8773c7c61e6b74919b92374a603afe9bf54d8126
BLAKE2b-256 checksum
How to use checksums
72a587abc067dd170312caf3aa5cf603d9414e6f53bdf19238c347188539bbf3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
155dadb985185e3e4bf6d52a018e7a234aa378bbc0af017c2e772be9ccfb05cc
BLAKE2b-256 checksum
How to use checksums
430c99ab0eeeff9f8e91ec89109ca2b9852e70f1226ebb7b0f24e76fd41c6d55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp313-cp313-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
74c3dd3877ae85311f6422070f2a1dd17d70dab3595880ec8835fa44349a3d32
BLAKE2b-256 checksum
How to use checksums
d88108947c848d42c39d68dc3f4a50d3c9bd16e9c58db7b6db5550dfd86954f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp313-cp313-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0a87bbd6b988c66e86c114afc4514ccbe36e1931632067328d5eb791733b1ee6
BLAKE2b-256 checksum
How to use checksums
363d15dfaa41bb2fbd4f432b0222d0cb93d04f2346362e765063532c95da779a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3c450f0538bd577f5b3e8d342c08acf1ae1bc2caa51d75b0a386209d476bc5a9
BLAKE2b-256 checksum
How to use checksums
c26cc4d5ee4ee18fe56f1397da3d4e970f1da327471c898a275ae2a35f23a1d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp312-cp312-win_amd64.whl
Size 4.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
b15729086d802e0290246ebbb7aa0439d316cb35572a176be224e7157fadf752
BLAKE2b-256 checksum
How to use checksums
3edd61bb75463a23721008cc024fdc593c6636225fc9b424055af45704d8361a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5becf59b309005a8e4ac36033d8a70bf648b01a7b587326e3481e3e1cb564058
BLAKE2b-256 checksum
How to use checksums
1aab0b47f1d19b47e11e3c2ab80e0f796e1a881799661af8ad86171e792f330a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a525bdf5cf25cd1edc57dde3c9ba21def0a6f3df4375c6511ff757d29d79dc21
BLAKE2b-256 checksum
How to use checksums
09fb9b220f33e106a289ee98642de25a8c345ccfd179144c1d747c68344ed206
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp312-cp312-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
12aa6c1fe0f6511ac04964f0b9a3b9b982158df7fe712d0005291180efc9f3e6
BLAKE2b-256 checksum
How to use checksums
a94fe83a31b3e46157fc12a124f01b9c4028ceb4da2235644ff49c1e12edca72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

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

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

Download URL zen_engine-0.44.0-cp311-cp311-win_amd64.whl
Size 4.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
ad96243ea8ca156ab0f3c18ac39f3b2a389dba06b36e4e951caee6cce55eaa83
BLAKE2b-256 checksum
How to use checksums
4f72a775be4da619b1eff165d7f94b9a01a3833a02f57a70933fd1350727d0a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8f8f911ad0459c4050ac87bfe8bde0b89fb1d4afda001a11f552fa2fa8f1ed51
BLAKE2b-256 checksum
How to use checksums
bd3f9e586642757e5dcea41539993114ad68d6919ae9b6a1e99ff9681dcfa976
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1b1b2646d5900579012c3c23bdcfa36ab1adf812fc2dd38dbeb32bff2fed8346
BLAKE2b-256 checksum
How to use checksums
c9a1e589520d9e6445c00c2d1da43b2dd73388676039bc31a23ead20129e3676
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp311-cp311-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ac9f68223fae28028d66168615f86191792eca32791ea57c36124aa4ace75265
BLAKE2b-256 checksum
How to use checksums
0f088b899611376951d500a084c9a6f35275a7b6a7005d15810156c837eaf7ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
96ca98c0818623efce259cccbe389b66df7b4cd777a958181bdc67666f3f36a1
BLAKE2b-256 checksum
How to use checksums
b1d00ced1a111da1a5a5cf7d777f00ab10e7933c7f49a3fd88eb262a8460f151
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp310-cp310-win_amd64.whl
Size 4.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
cdd1b3ad4c1161ff2805d4a7d0468b4d28d7c3ab9ae215991d85d3bee2fb97af
BLAKE2b-256 checksum
How to use checksums
2df98e667933363171177d29856c019f52076b76c7f33191c263adf5a0e90d8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
76c29aa6c5ae3c131747768e0c5fbb1da1fbe23ad6df3d353be8ddb0698c7566
BLAKE2b-256 checksum
How to use checksums
e7de4bf60a1726daa1d1234c5399ddc3291442759503d49cbff0790495e3dcdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2937c981c6b68386460403b4e2b5acfc8ebcff9eb11276269b53872ac87d1e0a
BLAKE2b-256 checksum
How to use checksums
4c3ccccc3d2be310ecaac061c8d1ba4e9ebcfb3b9ccea06551136c6830719026
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp39-cp39-win_amd64.whl
Size 4.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
2fd22a5ce85cf71c881934a13928ff5f55212f50997b824112406e3e0812f78c
BLAKE2b-256 checksum
How to use checksums
240f5f97933d2b4f0e6b0030d28a4628279b961d38dba925b1c1651ab83f0402
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
aec48410f77d2316ccc0e072df04a5a1779b015e959f494cac7d79a4ee3433b8
BLAKE2b-256 checksum
How to use checksums
e93d1c7f27e01ee6dc3b9e350a80c3a29cb2b9e00be0d99ce3f82f6278ebe018
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
928cd279687b473434624f7812460a1875812b34bd67f26d0adb6c4657bb7658
BLAKE2b-256 checksum
How to use checksums
7bc2af4214d5e9884b323037bb3e3d286f8fa88d16ea21bef1cd203ec13df365
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp38-cp38-win_amd64.whl
Size 4.2 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
930c5c31f6a6f4237f70647bb7a29797285353f102ad89719df67a1a727acdcc
BLAKE2b-256 checksum
How to use checksums
1b1285df14be57920b7c0c60574724d351c61a9468247084586c7c43866b50ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6612c8d669dcd8e0c45bf5fc92e6f2c370b79fa486890d22d59f187bfe9ab3e4
BLAKE2b-256 checksum
How to use checksums
8b5f97025cc098ea2cb99a78c13e668d00b96f7a078d3517b2e73ce0abaa4979
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

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

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

Download URL zen_engine-0.44.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6ece8be496ccad4879675ac7656423fb4d9c1488dd096a7c66e91568f38151ae
BLAKE2b-256 checksum
How to use checksums
192daeb568ab128f222866f289719deb0a9810b1f9c090dc8a2ffe669d7cb893
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.44.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
140c7f7409e8ad07fd643b1d4ae9cf09de672354c66913fc112b48848c37e601
BLAKE2b-256 checksum
How to use checksums
fa677c2a2763537b2ca6a35d8913611b681f437f37792cf81de78113fd7e773d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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