Skip to main content

License: MIT

Python Rules Engine

ZEN Engine is a cross-platform, Open-Source Business Rules Engine (BRE). It is written in Rust and provides native bindings for NodeJS, Python and Go. ZEN Engine allows to load and execute JSON Decision Model (JDM) from JSON files.

Open-Source Rules Engine

An open-source React editor is available on our JDM Editor repo.

Usage

ZEN Engine is built as embeddable BRE for your Rust, NodeJS, Python or Go applications. It parses JDM from JSON content. It is up to you to obtain the JSON content, e.g. from file system, database or service call.

Installation

pip install zen-engine

Usage

To execute a simple decision you can use the code below.

import zen

# Example filesystem content, it is up to you how you obtain content
with open("./jdm_graph.json", "r") as f:
  content = f.read()

engine = zen.ZenEngine()

decision = engine.create_decision(content)
result = decision.evaluate({"input": 15})

Loaders

For more advanced use cases where you want to load multiple decisions and utilise graphs you can build loaders.

import zen

def loader(key):
    with open("./jdm_directory/" + key, "r") as f:
        return f.read()

engine = zen.ZenEngine({"loader": loader})
result = engine.evaluate("jdm_graph1.json", {"input": 5})

When engine.evaluate is invoked it will call loader and pass a key expecting a content of the JDM decision graph. In the case above we will assume file jdm_directory/jdm_graph1.json exists.

Similar to this example you can also utilise loader to load from different places, for example from REST API, from S3, Database, etc.

Supported Platforms

List of platforms where Zen Engine is natively available:

For a complete Business Rules Management Systems (BRMS) solution:

JSON Decision Model (JDM)

GoRules JDM (JSON Decision Model) is a modeling framework designed to streamline the representation and implementation of decision models.

Understanding GoRules JDM

At its core, GoRules JDM revolves around the concept of decision models as interconnected graphs stored in JSON format. These graphs capture the intricate relationships between various decision points, conditions, and outcomes in a GoRules Zen-Engine.

Graphs are made by linking nodes with edges, which act like pathways for moving information from one node to another, usually from the left to the right.

The Input node serves as an entry for all data relevant to the context, while the Output nodes produce the result of decision-making process. The progression of data follows a path from the Input Node to the Output Node, traversing all interconnected nodes in between. As the data flows through this network, it undergoes evaluation at each node, and connections determine where the data is passed along the graph.

To see JDM Graph in action you can use Free Online Editor with built in Simulator.

There are 5 main node types in addition to a graph Input Node (Request) and Output Node (Response):

  • Decision Table Node
  • Switch Node
  • Function Node
  • Expression Node
  • Decision Node

Decision Table Node

Overview

Tables provide a structured representation of decision-making processes, allowing developers and business users to express complex rules in a clear and concise manner.

Decision Table

Structure

At the core of the Decision Table is its schema, defining the structure with inputs and outputs. Inputs encompass business-friendly expressions using the ZEN Expression Language, accommodating a range of conditions such as equality, numeric comparisons, boolean values, date time functions, array functions and more. The schema's outputs dictate the form of results generated by the Decision Table. Inputs and outputs are expressed through a user-friendly interface, often resembling a spreadsheet. This facilitates easy modification and addition of rules, enabling business users to contribute to decision logic without delving into intricate code.

Evaluation Process

Decision Tables are evaluated row by row, from top to bottom, adhering to a specified hit policy. Single row is evaluated via Inputs columns, from left to right. Each input column represents AND operator. If cell is empty that column is evaluated truthfully, independently of the value.

If a single cell within a row fails (due to error, or otherwise), the row is skipped.

HitPolicy

The hit policy determines the outcome calculation based on matching rules.

The result of the evaluation is:

  • an object if the hit policy of the decision table is first and a rule matched. The structure is defined by the output fields. Qualified field names with a dot (.) inside lead to nested objects.
  • null/undefined if no rule matched in first hit policy
  • an array of objects if the hit policy of the decision table is collect (one array item for each matching rule) or empty array if no rules match

Inputs

In the assessment of rules or rows, input columns embody the AND operator. The values typically consist of (qualified) names, such as customer.country or customer.age.

There are two types of evaluation of inputs, Unary and Expression.

Unary Evaluation

Unary evaluation is usually used when we would like to compare single fields from incoming context separately, for example customer.country and cart.total . It is activated when a column has field defined in its schema.

Example

For the input:

{
  "customer": {
    "country": "US"
  },
  "cart": {
    "total": 1500
  }
}
Decision Table Unary Test

This evaluation translates to

IF customer.country == 'US' AND cart.total > 1000 THEN {"fees": {"percent": 2}}
ELSE IF customer.country == 'US' THEN {"fees": {"flat": 30}}
ELSE IF customer.country == 'CA' OR customer.country == 'MX' THEN {"fees": {"flat": 50}}
ELSE {"fees": {"flat": 150}}

List shows basic example of the unary tests in the Input Fields:

Input entry Input Expression
"A" the field equals "A"
"A", "B" the field is either "A" or "B"
36 the numeric value equals 36
< 36 a value less than 36
> 36 a value greater than 36
[20..39] a value between 20 and 39 (inclusive)
20,39 a value either 20 or 39
<20, >39 a value either less than 20 or greater than 39
true the boolean value true
false the boolean value false
any value, even null/undefined
null the value null or undefined

Note: For the full list please visit ZEN Expression Language.

Expression Evaluation

Expression evaluation is used when we would like to create more complex evaluation logic inside single cell. It allows us to compare multiple fields from the incoming context inside same cell.

It can be used by providing an empty Selector (field) inside column configuration.

Example

For the input:

{
  "transaction": {
    "country": "US",
    "createdAt": "2023-11-20T19:00:25Z",
    "amount": 10000
  }
}
Decision Table Expression
IF time(transaction.createdAt) > time("17:00:00") AND transaction.amount > 1000 THEN {"status": "reject"}
ELSE {"status": "approve"}

Note: For the full list please visit ZEN Expression Language.

Outputs

Output columns serve as the blueprint for the data that the decision table will generate when the conditions are met during evaluation.

When a row in the decision table satisfies its specified conditions, the output columns determine the nature and structure of the information that will be returned. Each output column represents a distinct field, and the collective set of these fields forms the output or result associated with the validated row. This mechanism allows decision tables to precisely define and control the data output.

Example

Decision Table Output

And the result would be:

{
  "flatProperty": "A",
  "output": {
    "nested": {
      "property": "B"
    },
    "property": 36
  }
}

Switch Node (NEW)

The Switch node in GoRules JDM introduces a dynamic branching mechanism to decision models, enabling the graph to diverge based on conditions.

Conditions are written in a Zen Expression Language.

By incorporating the Switch node, decision models become more flexible and context-aware. This capability is particularly valuable in scenarios where diverse decision logic is required based on varying inputs. The Switch node efficiently manages branching within the graph, enhancing the overall complexity and realism of decision models in GoRules JDM, making it a pivotal component for crafting intelligent and adaptive systems.

The Switch node preserves the incoming data without modification; it forwards the entire context to the output branch(es).

Switch / Branching

HitPolicy

There are two HitPolicy options for the switch node, first and collect.

In the context of a first hit policy, the graph branches to the initial matching condition, analogous to the behavior observed in a table. Conversely, under a collect hit policy, the graph extends to all branches where conditions hold true, allowing branching to multiple paths.

Note: If there are multiple edges from the same condition, there is no guaranteed order of execution.

Available from:

  • Python 0.16.0
  • NodeJS 0.13.0
  • Rust 0.16.0
  • Go 0.1.0

Functions Node

Function nodes are JavaScript snippets that allow for quick and easy parsing, re-mapping or otherwise modifying the data using JavaScript. Inputs of the node are provided as function's arguments. Functions are executed on top of QuickJS Engine that is bundled into the ZEN Engine.

Function timeout is set to a 50ms.

const handler = (input, {dayjs, Big}) => {
    return {
        ...input,
        someField: 'hello'
    };
};

There are two built in libraries:

  • dayjs - for Date Manipulation
  • big.js - for arbitrary-precision decimal arithmetic.

Expression Node

The Expression node serves as a tool for transforming input objects into alternative objects using the Zen Expression Language. When specifying the output properties, each property requires a separate row. These rows are defined by two fields:

  • Key - qualified name of the output property
  • Value - value expressed through the Zen Expression Language

Note: Any errors within the Expression node will bring the graph to a halt.

Decision Table

Decision Node

The "Decision" node is designed to extend the capabilities of decision models. Its function is to invoke and reuse other decision models during execution.

By incorporating the "Decision" node, developers can modularize decision logic, promoting reusability and maintainability in complex systems.

Support matrix

Arch Rust NodeJS Python Go
linux-x64-gnu :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
linux-arm64-gnu :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
darwin-x64 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
darwin-arm64 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
win32-x64-msvc :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:

We do not support linux-musl currently.

Contribution

JDM standard is growing and we need to keep tight control over its development and roadmap as there are number of companies that are using GoRules Zen-Engine and GoRules BRMS. For this reason we can't accept any code contributions at this moment, apart from help with documentation and additional tests.

Metadata

Release files for zen-engine 0.29.1

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

Source distribution (sdist)

Source distribution for zen-engine 0.29.1
File Size Uploaded
zen_engine-0.29.1.tar.gz 168.6 kB Details

Built distributions (wheels)

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

Total release size: 99.8 MB

Release files / zen_engine-0.29.1.tar.gz

Download URL zen_engine-0.29.1.tar.gz
Size 168.6 kB
Tags Source
SHA-256 checksum
How to use checksums
53da0871142558560c267381bd9afc84cd6ba3951f13e79050625ed96f9d9cab
BLAKE2b-256 checksum
How to use checksums
44e194b01de1cb13466fa80bb6e0994a31d75ba44e1409ae95fb380fc6dd9db7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
bb09438cdf5e98ff6568bb3916e31fc2b68b153184fda0d98e1f10bfdae19398
BLAKE2b-256 checksum
How to use checksums
6c299776e5eb49b78a470cf1b61cac9fe4581c636d77c9fdd4ce65db6b6cb8d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
a2997b7fa1309dcb2e01eb9d941a3d9dbee1cfcdc8348e3d37c55641162ee9d5
BLAKE2b-256 checksum
How to use checksums
4f6abd2e11b628eb32d5cca6f3ba083f4f347f757d7e3631bbb88a5051852912
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
4e4718e5ddff2bc5f52add48d7d0f0fab8abad06ec9e42a001117dda78bc3f47
BLAKE2b-256 checksum
How to use checksums
a302576a048244d3818e55e94c3bc4384fda91a1321af348a306236cac8f5199
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
fc7fa7c9908d74f668289a2abb225fe3bf89d708781f4bd1baecb98c8c2c517e
BLAKE2b-256 checksum
How to use checksums
2dfa53fa1c8fb886afbafbf918322a38795ebb5dedaa0ad145633a24472da36b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
7e0165c4f924cdcba8efc34a24789c6442b573bf7094f1ba938bf9c1652d0f14
BLAKE2b-256 checksum
How to use checksums
ab9ad855f077c3e35c7144f03971c28918e05255fe2da76aeb3b2da3afb19f53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
e0ba6e94776ac0088713a66a391c388cfc7b61dcc69aecd49fc8abc14eefe4b0
BLAKE2b-256 checksum
How to use checksums
7a2a7be207525feb2c20e0098bb827e7193e94d3b2c070912c01e95abc320e39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.1-cp312-cp312-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
01cc5e24a512e5b70ee2e1349f706db29711703ad412725eabef8fc07381a383
BLAKE2b-256 checksum
How to use checksums
13af1d2385602f79b95d6772678065b6996563b264ec5f428cde252bf3cdcc7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-cp312-cp312-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e1d3dd25f0156531c3d6528bb2b068fcd3ad164505552cc5432dce66286876df
BLAKE2b-256 checksum
How to use checksums
34df2b31649918c94df33040da8a99029caa0e45a1aa4ff8eff5018fafa01aea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

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

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

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

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

Download URL zen_engine-0.29.1-cp311-cp311-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6dac2f679b9b0540e53acb819bd858bc6ca7d80156f1402a0df0c77fa3cc64d9
BLAKE2b-256 checksum
How to use checksums
b2814fc7edfb978dfcfb90848e8dbf2290e2fad52019962ad64030757f12e497
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-cp311-cp311-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9231c828666af507636f9857ab37c0e4a44509a480d341b0c35fd8104be203df
BLAKE2b-256 checksum
How to use checksums
409661bef935cb4fcd92a456aa5fa0b06ad4835b223c2d673cc23c40e213e836
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.1-cp311-cp311-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
570c11592a53f5fd3c454a4938c47406c7e40afe7cc54c2cf7ea2f73cb76a8e9
BLAKE2b-256 checksum
How to use checksums
c2f27a80747b2519767b75b787f6b00c8e643ae26fc0aa0ad79074fa5c932a09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.1-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
640a61d3572b9116357370d61277cb37b5f0fe8485891f7ff3ed66a3e095be82
BLAKE2b-256 checksum
How to use checksums
42ba1ab3ed3b6143b26952da434d869ed149df55fc11e00bc79b2c9bbcd92b00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-cp310-cp310-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
74c53249081ceee267f39b01d8ed3f28c4d5af95a0c266ea205450fbdb3d75b0
BLAKE2b-256 checksum
How to use checksums
49e7d52df093fba3be57f17cbd32a385f37c311b915b643bfaa80d45f79b92fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-cp310-cp310-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
21c50a8cb5375f3c7658530d9c72ae99817695234514d2bff4a9e890af7a2ef5
BLAKE2b-256 checksum
How to use checksums
f47eb149dfc71c9f6d0808700a41a1a384dba262f738672f9bb5a1e03f08454f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-cp310-cp310-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
30cbed2f3bb237f67ca9f88f2c8d01eaec28c22c0ed32f6c3fe01ade56f1617c
BLAKE2b-256 checksum
How to use checksums
94cab23401b3c5a636a7393bde4bc9375797b1a8f735d868cb01b14324c80cb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.1-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
05500f6dab9278cf79b5430d2cf4f7cbf79d62a89d7a90d70fb69056201813c1
BLAKE2b-256 checksum
How to use checksums
90dc74e051004990d3300d1e121d5fec73e6c99e270e4afb77b80a486a78e377
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-cp39-cp39-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9531ec5bec72b3fe7f0d48427c7c07bbc7ebdf9493ea6bf649332ee03b0ebccb
BLAKE2b-256 checksum
How to use checksums
a544170bf3442eea6afb53c9e89fbd52c933999f3dda326304d0b756961c6e4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-cp39-cp39-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
35f48cc815327c0e00deb56aa3e2fb14944af9faeb34f5c921ccc01b1d714b18
BLAKE2b-256 checksum
How to use checksums
ce72b7dc225417b712c5139537457cca080527630f1873558db2e0d90a156323
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-cp39-cp39-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.9 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b6a8fafd7c79cd9a14daab600d21dc378a0f641cfbd6f0a85b161366f9ddf42d
BLAKE2b-256 checksum
How to use checksums
a4b4c5424ae83d71925af475c98dfc43fd406778fdeb567e2742ed77e7e2f651
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.1-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0cb0c66bcb93c492dd6478d223b5771054b028ed7276a4aeb5843c84c4d6c6aa
BLAKE2b-256 checksum
How to use checksums
0e2ebd5ed99f6be83931437c409465a491111658ef0a43b5f64d937e868726fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-cp38-cp38-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a565165bdbf87bed164069c9155726709df8591a93b757e6c3563f072750cd61
BLAKE2b-256 checksum
How to use checksums
55ae47bcce24d3dde90d65593bf5bf50266b989c4df994fc9b5da4edc9429131
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.1-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d228ead5b51c1f7c535ec2d3b2c4910ae834cc586cdf638d970de72a1d43317b
BLAKE2b-256 checksum
How to use checksums
a6f28c868fc765cd1c1f8f23b36d9add48173b177e4f35b7788e36558dcb93ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.1-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1810b2191d078cd3a6575994758b0162094eaeffaef7545b3ba78ae95e09f499
BLAKE2b-256 checksum
How to use checksums
f8c34cd9b36954c0543bcdee3a51553b2010b2f46e6f454fd90e76a8a8fc9692
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release history Release notifications | RSS feed

2.1.3

6 release files

2.1.2

6 release files

2.1.1

6 release files

2.1.0

6 release files

2.0.2

6 release files

2.0.1

6 release files

2.0.0

6 release files

This release

0.29.1 This release

34 release files

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