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

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

Source distribution (sdist)

Source distribution for zen-engine 0.34.0
File Size Uploaded
zen_engine-0.34.0.tar.gz 172.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.34.0
File
zen_engine-0.34.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.34.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.34.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.34.0-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.0-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.0-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.0-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.0-cp312-none-win_amd64.whl CPython 3.12 none Windows x86-64 Details
zen_engine-0.34.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
zen_engine-0.34.0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.34.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.34.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.34.0-cp311-none-win_amd64.whl CPython 3.11 none Windows x86-64 Details
zen_engine-0.34.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
zen_engine-0.34.0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.34.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.34.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.34.0-cp310-none-win_amd64.whl CPython 3.10 none Windows x86-64 Details
zen_engine-0.34.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
zen_engine-0.34.0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.34.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
zen_engine-0.34.0-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details
zen_engine-0.34.0-cp39-none-win_amd64.whl CPython 3.9 none Windows x86-64 Details
zen_engine-0.34.0-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
zen_engine-0.34.0-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.34.0-cp38-none-win_amd64.whl CPython 3.8 none Windows x86-64 Details
zen_engine-0.34.0-cp38-cp38-manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ x86-64 Details
zen_engine-0.34.0-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.34.0-cp37-none-win_amd64.whl CPython 3.7 none Windows x86-64 Details
zen_engine-0.34.0-cp37-cp37m-manylinux_2_28_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64 Details
zen_engine-0.34.0-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.0.tar.gz

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Release history Release notifications | RSS feed

2.1.3

6 release files

2.1.2

6 release files

2.1.1

6 release files

2.1.0

6 release files

2.0.2

6 release files

2.0.1

6 release files

2.0.0

6 release files

This release

0.34.0 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