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.37.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.37.1
File Size Uploaded
zen_engine-0.37.1.tar.gz 175.4 kB Details

Built distributions (wheels)

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

Total release size: 111.4 MB

Release files / zen_engine-0.37.1.tar.gz

Download URL zen_engine-0.37.1.tar.gz
Size 175.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f53dd4d0c797c9c20e216b7b861b23fa228c0a51f9742f1004ae1ce39cc22270
BLAKE2b-256 checksum
How to use checksums
81ab8fb33215cb6d9b10f71d432892df4c61947be388e4306a6460ac3c70262c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
ce473d38aa8786817fb9149fbf1a5b99c46ddbb4153aadf8ce8d90558ec10185
BLAKE2b-256 checksum
How to use checksums
781a361625116644652ef374e92d233384a1a898bcb954e41e0fdaec05cdbaaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

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

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

Download URL zen_engine-0.37.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 3.6 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
48f316d96ddc8871c48c793768a92193751d2ae8cc387c6f7343d66753faee6e
BLAKE2b-256 checksum
How to use checksums
f53e77aed850a46e78c0046b67d485f5129eedb02ec8dde7253ca40afae0543b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
723675443266b417e1e33ee9ab1d0d91540fd3de487f4aac293cc9f575f857e5
BLAKE2b-256 checksum
How to use checksums
05ac1b206994c407423949487ccef464472a4d1af0df062b77a85551ee17af1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 3.6 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
419171f4afc4c67b73c37843ef1cceb39be85321b934aaca417c65647b746d27
BLAKE2b-256 checksum
How to use checksums
c8235f4ec538fb6bafc4f1a268fb9006c3c83d917c542e0391bd8d409e7c5c3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 3.9 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
66492045ccb035025661aab867f881bde703012981dbd13aa65dbee84a99e64c
BLAKE2b-256 checksum
How to use checksums
3966ff7cc7b0f803a2ad54aab5e64fca29563a0f1dab07e4482b8909f20dc635
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 3.6 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
ce8bb4f0b846ff426c9d933647bfc09e3d4b16fc0c77557fb05cbb8f9d1a407c
BLAKE2b-256 checksum
How to use checksums
5f73f884e7f33b843b6db61a937babd3b4c1f03ebda9b5ac1b8e93b47f514491
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp312-none-win_amd64.whl
Size 3.9 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
81498f4fc863a2a567317b9838b879a52ed5a2e364de1d1f41820de0cc0d694e
BLAKE2b-256 checksum
How to use checksums
89bede5159e5c70166f7fad8ea8602430a31dacf11008bb2dd648a0e17d8d628
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp312-cp312-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7bbe13ac25986ccdd2a2e3dca4f0b29d1c4462898d9d480aeebfe1ff4868a0c4
BLAKE2b-256 checksum
How to use checksums
2639af5a58c04b51c1da2c6456d216e1bfc272ec54a180e77a5c827e48866818
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp312-cp312-manylinux_2_28_aarch64.whl
Size 3.6 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e3cf844655ef3b2ed7adbd6bfffd3c48132bfcd35f5dccdcbe5dfc81307868f1
BLAKE2b-256 checksum
How to use checksums
d928688bb793460180da0534d305172cd04fedfdc197146f8f7b8ee2496af194
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp312-cp312-macosx_11_0_arm64.whl
Size 3.4 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ae515a525adfe2c2479c0b0338bc2cb2b507802b6942f3c9d9dcb1a803ed74f4
BLAKE2b-256 checksum
How to use checksums
fe60643c65bbeab1b88287ea3558f82e6a4e3c3923630024846d947862d19aef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

Release files / zen_engine-0.37.1-cp312-cp312-macosx_10_7_x86_64.whl

Download URL zen_engine-0.37.1-cp312-cp312-macosx_10_7_x86_64.whl
Size 3.7 MB
Tags CPython 3.12 macOS 10.7+ x86-64
SHA-256 checksum
How to use checksums
7d1dfec900dc18c6d21fd3dac8e1c249599806e6c2be8cb2d81cf667d1c9fd6c
BLAKE2b-256 checksum
How to use checksums
3c4586e2097c91df6b04aec848b74c947bc93715d1aedf31e1888fd1c5e9e66a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp311-none-win_amd64.whl
Size 3.9 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
0f6b45a009d99f72853e510221fc6b4a65133868e5245fae51bb7a310b52d970
BLAKE2b-256 checksum
How to use checksums
3312bebcb8e6a305cc017b6ca60eb33cee6f3c289f635d4fc30769e509230dfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp311-cp311-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2ec942c27c9c555074ed24e9753f449a3f6dbade16b6842cdbc38e2394cb202c
BLAKE2b-256 checksum
How to use checksums
e449ddc44b545cfa3284c2e69443716e377b34e68c0e7f0fe1e0c48631ec641b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp311-cp311-manylinux_2_28_aarch64.whl
Size 3.6 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
44e0f9fe62cb1f6c45c57afb114618904e601ccbead1e149984a40e65dded9be
BLAKE2b-256 checksum
How to use checksums
70ab7161eebdfb6da0a5887b4646301c8923019a7a7a6cb1a71f29556ebfbba2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp311-cp311-macosx_11_0_arm64.whl
Size 3.4 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
54150abe55f8200ebbfe101004cce25c0ea58bab73397961e05d3afb11ff1de3
BLAKE2b-256 checksum
How to use checksums
af2471c7eaba91c85eea397989515f4e303cd97f6aa91e9d02b34b7eaa457472
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

Release files / zen_engine-0.37.1-cp311-cp311-macosx_10_7_x86_64.whl

Download URL zen_engine-0.37.1-cp311-cp311-macosx_10_7_x86_64.whl
Size 3.7 MB
Tags CPython 3.11 macOS 10.7+ x86-64
SHA-256 checksum
How to use checksums
063c41804dacffa2cf120f6d28ef6f68adfeb8f6a1d5c367022692dadcc063da
BLAKE2b-256 checksum
How to use checksums
8673b2be9a666050718bb3ba19fe6106a57cb052251d30ea0b6105d7a30ad07f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp310-none-win_amd64.whl
Size 3.9 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
ad023ce8fe6e2577ff124a5627eff0299d3511987281ecf7567082efa8d2d9bf
BLAKE2b-256 checksum
How to use checksums
32160fc8e5c9741897238f0a554e42c99695038bc5d3ebffdf47dd441b1d549e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f7c4ceeb1d700a3c816bca6764ea64cb3216dc5123d4e1db7e2aa79c23b421d7
BLAKE2b-256 checksum
How to use checksums
81cff5d48ccbd250d14675c3506c8ee823fa9faf3264e1d0c8f3bd6440b79a6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp310-cp310-manylinux_2_28_aarch64.whl
Size 3.6 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6a8753e9c4e859ce35176ab62d0ab3c8f4b7f30a2ac969c1682e6f92b45be924
BLAKE2b-256 checksum
How to use checksums
7ac75764801c2376c0bb8de140550932e0fafb2434ac37e8e264f03a120df1f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp310-cp310-macosx_11_0_arm64.whl
Size 3.4 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
500f69f4aa478576a9f61be56438f057f1cbc8be2a5f70e5425a2efe5b450cfe
BLAKE2b-256 checksum
How to use checksums
ddee556b83c3e05a845799d70649fa48e44a2e9ccb27b8dc01fe87eb72b19602
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

Release files / zen_engine-0.37.1-cp310-cp310-macosx_10_7_x86_64.whl

Download URL zen_engine-0.37.1-cp310-cp310-macosx_10_7_x86_64.whl
Size 3.7 MB
Tags CPython 3.10 macOS 10.7+ x86-64
SHA-256 checksum
How to use checksums
2680073bb10e74f2912b6065f294ae6cdf18fb88986f6bf0675b61c916ee82e2
BLAKE2b-256 checksum
How to use checksums
65692fdb74c491d7971e61252edb15c1f78394e77ab9ea2710154dc1a1f00f30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp39-none-win_amd64.whl
Size 3.9 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
7e1d4b67af23809cb9b9a8579430aa496dee6f250f4ec32497b8133d9975ad19
BLAKE2b-256 checksum
How to use checksums
10f97836c70ccc4443dab4c5307ccda7c85547e48e232976f9b5edb683b60b17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8b368686c7b654e0aedc5800e2012a3e50cc39e719eece8db00d671405a90750
BLAKE2b-256 checksum
How to use checksums
976c7feab6d106432f50f4cb600acdb2e7fda6dc54fe778035980507d9dae235
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp39-cp39-manylinux_2_28_aarch64.whl
Size 3.6 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8a739e90b5ab87d52e5117028e8b5cf7b9fec220474a9278ca0089561d67f269
BLAKE2b-256 checksum
How to use checksums
2ee3c3666ce601935fce2ad9e56940f976d8b7631471bc1107f89765a6ed2a3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp38-none-win_amd64.whl
Size 3.9 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
614cef8b86c17d6223ca0daf7246932bc3e07cbf70d87ce68ab06505ed3ec638
BLAKE2b-256 checksum
How to use checksums
f0cc32a8406eeae10912da2ff9057f95f16fe936a8fa56cbb633a5c9ab4993c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b68cac6598efe63cf78e15aa2bdf3c7c1bc75969d371b4d1f9a8c8ef754ed5a7
BLAKE2b-256 checksum
How to use checksums
06b6f618f8b31254c1a54f7f1d930adf2b2d317543c274e870c990e9e443c3b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.1-cp38-cp38-manylinux_2_28_aarch64.whl
Size 3.6 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8b4fb0df161f6dd291b888cc64f6da6f5053403ea77a9706acda8df5917e7d72
BLAKE2b-256 checksum
How to use checksums
2151a812a7a1eb04853ad6c31c3fc5886691a46b91e09be9378fdbbf9ff91c89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

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

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

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

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

31 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