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

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

Source distribution (sdist)

Source distribution for zen-engine 0.35.2
File Size Uploaded
zen_engine-0.35.2.tar.gz 173.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.35.2
File
zen_engine-0.35.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.35.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.35.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.35.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.35.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.35.2-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.35.2-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.35.2-cp312-none-win_amd64.whl CPython 3.12 none Windows x86-64 Details
zen_engine-0.35.2-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
zen_engine-0.35.2-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.35.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.35.2-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.35.2-cp311-none-win_amd64.whl CPython 3.11 none Windows x86-64 Details
zen_engine-0.35.2-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
zen_engine-0.35.2-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.35.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.35.2-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.35.2-cp310-none-win_amd64.whl CPython 3.10 none Windows x86-64 Details
zen_engine-0.35.2-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
zen_engine-0.35.2-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.35.2-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
zen_engine-0.35.2-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details
zen_engine-0.35.2-cp39-none-win_amd64.whl CPython 3.9 none Windows x86-64 Details
zen_engine-0.35.2-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
zen_engine-0.35.2-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.35.2-cp38-none-win_amd64.whl CPython 3.8 none Windows x86-64 Details
zen_engine-0.35.2-cp38-cp38-manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ x86-64 Details
zen_engine-0.35.2-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.35.2-cp37-none-win_amd64.whl CPython 3.7 none Windows x86-64 Details
zen_engine-0.35.2-cp37-cp37m-manylinux_2_28_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64 Details
zen_engine-0.35.2-cp37-cp37m-manylinux_2_28_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64 Details

Total release size: 95.2 MB

Release files / zen_engine-0.35.2.tar.gz

Download URL zen_engine-0.35.2.tar.gz
Size 173.3 kB
Tags Source
SHA-256 checksum
How to use checksums
5c064672b0fbf3f84500a9067a647c8a9b4f622ea629e7fa1d0161aed11da11c
BLAKE2b-256 checksum
How to use checksums
4d2f492a24cd1b6fa65bf16c9df6e76b61aa2cce3b294d954b3ba950c2af4377
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-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
84d6a8894d1646fe52f57b695c63085772941bd73ee3a7a371e1827a02f47c0b
BLAKE2b-256 checksum
How to use checksums
6568fdcbfcb0e71e96faa82bf74d8b821c1e81c575aa31dd995a3bff8c63a1d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-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
432272a40e5f8186313f18dffd504aa964189b9a897fe33ec3f843ce9c0a689f
BLAKE2b-256 checksum
How to use checksums
a32bd8a0929e953865d40ce598813e4674f21576d5fbef95a19c1cbe73bd1860
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
06ce59dc8c5cd1f79a8802b692d872273c3383820a60ee3883db5b1667a6729d
BLAKE2b-256 checksum
How to use checksums
417d6282c12752db958aa63d399a8048438423dd469c01c2431d855d1fac01f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-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
7b815bb4abc8a7bd173495f545a2c96b4ad9c7452f21ea88991f3c04d21bf68e
BLAKE2b-256 checksum
How to use checksums
8d189f2615a7edd3948b1a77af2a490eb602da60ce457e198038049eb7bae527
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
e9749969f76d493c85c0f309c8c69f3dba5a21399aca5c4381d5c3d50ca7865f
BLAKE2b-256 checksum
How to use checksums
0b2f524339d43e7ee31e1db9190bc065ecc9c78bc11c502f9094ccdcf6f5f86e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-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
52f5910d10548fd4ed86d99eead4048e11baaa3dc1cebd8d44c0bbde81615b8d
BLAKE2b-256 checksum
How to use checksums
39e155298120c45eada6ac2b190e4eaedb5d81f776ab9a906e67446452e0c239
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
f46fc0128cd3233a24a037758e77b2d189604496e49a519183d52896f1e962b3
BLAKE2b-256 checksum
How to use checksums
30839b1305845efe9b4c31fca753ebbad7be09ca392d20216892b7645d0def20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-cp312-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
cea8b50288aa9d205f76d301ab1d155f68eb2907cb62e44f126e36d2352a7e85
BLAKE2b-256 checksum
How to use checksums
8427fb1d998d0bfeba56a32b036187efd573882d9b5ec65c71ac2f5a74cf5138
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.35.2-cp312-cp312-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
515493602c4184e6bf397af9489c4fa4b8e7ae3036c921a16f6e5692983f691b
BLAKE2b-256 checksum
How to use checksums
c64e448f3b171729c63108a2bde62ac2a2a7ccf86c738e80218b98d8150ffb08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

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

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

Download URL zen_engine-0.35.2-cp311-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
f397316388101a515928112ecbe34a5f5ad70f8fe4a8e858a7c58d8788fcd6b4
BLAKE2b-256 checksum
How to use checksums
2ef77a83ff58bad859b7c6f5561c6bf1c83ab39e060387d6257fd0dc230e6ee5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.35.2-cp311-cp311-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f3c327c3f30d73208f9bd9c68bb0ccc2e86691be2fdfacd19e6c83d0d5275ea5
BLAKE2b-256 checksum
How to use checksums
baa734309c65e5a66231a64f9e79b24acd4f75f9c085565296540be922cce35f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.35.2-cp311-cp311-macosx_10_12_x86_64.whl
Size 3.1 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
17e880cd9c80314a211ade9a5b3e8e14055e09afbbf83b38eca009663ed72bc5
BLAKE2b-256 checksum
How to use checksums
31a74497e1d98293cdbbf357828b85c9a5abfbd42a6c2ef4b6381b7e363731f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.35.2-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
34d2b9ad7843983963802557daa101adc7ca379edab7d3785254baf5de978b8d
BLAKE2b-256 checksum
How to use checksums
de9ce66bbde4277cc87e4a021557ce3790c5723a9d38b31dce26ba7a9ccad069
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-cp310-cp310-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
bc34a82fd02126e6c41495f3b543282481bb3ff5bc19f68f36b533c13e33dbe4
BLAKE2b-256 checksum
How to use checksums
fcb9a70c843622ea90ac1c7d4fce380f2888f33d51890a0e1b7f5b7feebd88c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-cp310-cp310-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
013e744240ee27da6b2a1f177cb0948523630b26cdec4cf015182f00eb792a2b
BLAKE2b-256 checksum
How to use checksums
2f30a02aa34981754f8c55efaa1c7bc86a026efecde664818dd66302ab513501
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-cp310-cp310-macosx_10_12_x86_64.whl
Size 3.1 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d95aeb9c3e07f33044c50d0bbc920fda16b8acccfd676f6d64d5cd1434f34427
BLAKE2b-256 checksum
How to use checksums
afefe77611839b4406632dce6bb9f77822ad4d5fc629447f662f59dccd970f36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.35.2-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
a46c5ef522eed2ad21c928b25b608865028f7637be834753c513341ed0d4f259
BLAKE2b-256 checksum
How to use checksums
6191c489fdc66cbc933b5a82389a146b59d5d07589bf8aa982d3ffceba8d97a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-cp39-cp39-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9ec98c365a5b98a6442002a2310abc6f175c5df25114f8bc787f641d8e942612
BLAKE2b-256 checksum
How to use checksums
6e23560003f29079ba85d1818a5ee062ac86de273d21fe1f4c971b12d7411f1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.35.2-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
d0d830fa6a25d14907726a5e3ce3660a6539e8c54b200afb5e64ae94e643bcad
BLAKE2b-256 checksum
How to use checksums
165b9dcb18f57777107673a2641701848185f8d0ad537d97f93e6682f1042d94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-cp38-cp38-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a2fcd6bc9f1f22db79afe3340e857c944e41229d031c874b0dc6d861b968b804
BLAKE2b-256 checksum
How to use checksums
95e332a5ebe57c9dc0c0041de9b309f312123849bb4730d8187e2be66e749f61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-cp37-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
87d97d408bd2a8419e129e83d578c41b4ead9e98a29472b55d4dad39feb14a6f
BLAKE2b-256 checksum
How to use checksums
281afceaf0e51cb380412546e535069776b7b6b3bafe92fc93c6f3e460e89339
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-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
03ca655ff987d76c2d43be5c3a22c7ddfdc8d4f069b06d36fc00ce8c88ecfcbc
BLAKE2b-256 checksum
How to use checksums
7008632cbd386f994aeca606816dc8ad43d881ee429da875a001683a5ba6f9c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.35.2-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8b7137619219ef15735046b112673e0d4235bf995db78e17e4f692ae968a4f6c
BLAKE2b-256 checksum
How to use checksums
c7f67a3b1248227001e7e346ea11ed33cf570a677ae84dcf7d80c0ef1a9eca2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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