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.34.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.34.1
File Size Uploaded
zen_engine-0.34.1.tar.gz 172.8 kB Details

Built distributions (wheels)

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

Total release size: 94.7 MB

Release files / zen_engine-0.34.1.tar.gz

Download URL zen_engine-0.34.1.tar.gz
Size 172.8 kB
Tags Source
SHA-256 checksum
How to use checksums
19d797e3364df0357e899cab440f92ab7a291d854a5e5e45be3f641c4faeb35d
BLAKE2b-256 checksum
How to use checksums
d7ad8e02ae2a27d8c6cbadd0a78d67ea0439ace6cb01649f2b8e39b661aae52a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

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

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

Download URL zen_engine-0.34.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
39fc14deaf9b839b2cdcb41987b5a9ed7ff07def6977af2f0e6f2a719d7eb455
BLAKE2b-256 checksum
How to use checksums
379233885ddf25c4df1eff1747cefbd58933a2b87cf21a2ff4bbc52a98a1d94d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

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

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

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

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

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

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

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

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

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

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

Download URL zen_engine-0.34.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
09338cdb3912baa4c2579dd260d770367b1f7479741cd9c40a4b872ed0c011c9
BLAKE2b-256 checksum
How to use checksums
0f3c09a5bcdc30cbd1b9d8cba1ed49a4b1657120fca85c7aa8601f62d1a6a166
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Download URL zen_engine-0.34.1-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5ac09caf0ebc3a04e2d159eb88ba085c9b83bf36e835193a52dc077ce07b7922
BLAKE2b-256 checksum
How to use checksums
b3a995d17696ac0aab710553fa5d106a85179725ffd91f83b841643264c36962
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.34.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
981d94222ac8ba5c5cc5810ba51002adf1e1c65249331c674701bf698a00e09c
BLAKE2b-256 checksum
How to use checksums
0097845df4ccd69e3773f5c741df0e5088f8299464714272cb8c39954ff0a99b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

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

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

Download URL zen_engine-0.34.1-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3b0117425e2330403d517ac0c815e7bbe3133e6faf0f193eb39d738006de2047
BLAKE2b-256 checksum
How to use checksums
75b73ece397ac67570aaa2bea15ba656ba737f6bcc27e97e4dd0647512e46c13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.34.1-cp38-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
69ffb4c0193be193e9286f86519f25f8a302f4a022d7c616994ad7b932618aa7
BLAKE2b-256 checksum
How to use checksums
3685ce2e36ae643283c98834e4be9cd6e486798e90dbf9763a6536a5970ad159
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

Download URL zen_engine-0.34.1-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
33f2b1a5f485133fa21f3e215a24788132aed9eb1fddb32bf18d5671d9cbe0ad
BLAKE2b-256 checksum
How to use checksums
313e586f19107f593f24a6b02a47e76cc3fb978f1796d56b2e7a6e876241f8b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.34.1-cp37-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
8e1df2eb30ee80ead658ec1237ad608f268f0d70932b551cb43cbdb6001cd143
BLAKE2b-256 checksum
How to use checksums
aea6cbde2e10a9511dd9e1f086d2639902efe6fd20dde992dd47f64b5e892a72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.8

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

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

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

Download URL zen_engine-0.34.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
7931f60ed9ce97622262c169303fd563d069377695e137893674ffefc72e95ec
BLAKE2b-256 checksum
How to use checksums
0852ee51a99d6accf43c02edd99b65d1912f70ce986a298c611215d7cd07b9c9
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.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.34.1 This release

32 release files

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