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 ✔️ ✔️ ✔️ ✔️
linux-arm64-gnu ✔️ ✔️ ✔️ ✔️
darwin-x64 ✔️ ✔️ ✔️ ✔️
darwin-arm64 ✔️ ✔️ ✔️ ✔️
win32-x64-msvc ✔️ ✔️ ✔️ ✔️

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.43.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.43.1
File Size Uploaded
zen_engine-0.43.1.tar.gz 194.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.43.1
File
zen_engine-0.43.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.43.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.43.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.43.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.43.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.43.1-cp313-cp313t-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64 Details
zen_engine-0.43.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
zen_engine-0.43.1-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
zen_engine-0.43.1-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
zen_engine-0.43.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
zen_engine-0.43.1-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
zen_engine-0.43.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
zen_engine-0.43.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.43.1-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.43.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.43.1-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.43.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
zen_engine-0.43.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.43.1-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.43.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.43.1-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.43.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
zen_engine-0.43.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.43.1-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.43.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
zen_engine-0.43.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.43.1-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.43.1-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
zen_engine-0.43.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.43.1-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.43.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.43.1-cp37-cp37m-manylinux_2_28_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64 Details

Total release size: 131.5 MB

Release files / zen_engine-0.43.1.tar.gz

Download URL zen_engine-0.43.1.tar.gz
Size 194.2 kB
Tags Source
SHA-256 checksum
How to use checksums
29b6370da029939c65dd4d0dee0945d698ce3c9f328f3a4a4521d4360975d8db
BLAKE2b-256 checksum
How to use checksums
805b3f8d5a866874eb857cc9b9acabacef586a4d9eb9149008bdab0a46b9c911
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.43.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.43.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
9dcde0551f51e548c92b0e53fed6a42d4332ed3a443939236175c3460e535432
BLAKE2b-256 checksum
How to use checksums
fd3583cf536ae85a095e62a5eac8b8bce26be3524e7f1345512b3d8a7ab1c0c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
0033bd94ea470c0fe68763450709cb20452a95d11b4f988ac1d5665f3ec7a530
BLAKE2b-256 checksum
How to use checksums
e8442756fe000310c285d473f2065a0bdd3c0f21cda181cf775258ab0e4ecd5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.43.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.43.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
afeac69875a660356aaaf9bdfafd6019fb87d93e26e89c1839919c88ea51fefe
BLAKE2b-256 checksum
How to use checksums
64dc17354c6775e12203cfde52076add6d0355e867970b76fd88462c5a279d36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

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

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

Download URL zen_engine-0.43.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
9f8c8af4f5f9d9a8305725cb5ec3da31f6120c57a9b846f0386b6844f983051c
BLAKE2b-256 checksum
How to use checksums
7dcdcf59758a3039250ba9c4d15c1e4ec2d79fbcc5643e72538da44f45723d14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.43.1-cp313-cp313t-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.43.1-cp313-cp313t-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
75f69a9f29e1c9afd06217866d924ebba151f912185acc9ac4f8650764402b4d
BLAKE2b-256 checksum
How to use checksums
2c7147cd610673a5261195cb230796c99accfea5485462e29d1e23b3da64eaff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.43.1-cp313-cp313-win_amd64.whl

Download URL zen_engine-0.43.1-cp313-cp313-win_amd64.whl
Size 4.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
54f08cc773ccc8b2c906efbfdbc7e2176287b31ee5012bf906b1ae0bb35b5529
BLAKE2b-256 checksum
How to use checksums
249fffeee697f5a2f769c23540513ef7cc378113da140bbb07aceab5535e7015
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.43.1-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.43.1-cp313-cp313-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d5fb6aebb6ac7bc635b7d5b3d7f88d214a41020ed3a581110a9a4c690c9ad745
BLAKE2b-256 checksum
How to use checksums
1a920f6b62879e20d9f628beeb85c23a581596e3aa8700e290316987032cc374
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.43.1-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.43.1-cp313-cp313-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
4fc1fad645d8c7eb57d45fd64862e92540617da91eececcb3d32f202cccb9fe5
BLAKE2b-256 checksum
How to use checksums
0e9dcecbd9b853a9ac097889658c3c1e5961d2d79dcc64626d75ba2879365b29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.43.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL zen_engine-0.43.1-cp313-cp313-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a76056a6ee78f0cc552964eac879cd099a52b58931465ae265aa7450c428291d
BLAKE2b-256 checksum
How to use checksums
c0c96e86a5d215285eeb15f2e5b166054db5f7d538762f50f41bc74eee5d1f37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.43.1-cp313-cp313-macosx_10_12_x86_64.whl

Download URL zen_engine-0.43.1-cp313-cp313-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
c26a48df263ffd822eb151f77bd30f1aa24abde31bb9aa2169891484125d9d2a
BLAKE2b-256 checksum
How to use checksums
772ea716a7e87ec7f9ceb750e3251086c191df3e931d0946d08bb560c47343b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.43.1-cp312-cp312-win_amd64.whl

Download URL zen_engine-0.43.1-cp312-cp312-win_amd64.whl
Size 4.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
2e2e77bbcfa6e5a51947267bfda991352c6fcbf54f130d2b0aac56a1d8d9fb3c
BLAKE2b-256 checksum
How to use checksums
411a6e041e5b2da49333a487990173a6b2bfc6d6db3d9a4334d8e34c465f3b39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp312-cp312-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f0125ffcc74630ee2970348727b437ae16d4ac880be009784fb525ed82cdaaad
BLAKE2b-256 checksum
How to use checksums
d05c6379a4695356ac32c5a2323e89843fd2cbde2437184639d51df92870beb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp312-cp312-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5b259bd779773f55b08ca8d9258f276503c6bdd8e8fdc4b9d7ae7e2e21671040
BLAKE2b-256 checksum
How to use checksums
b5ca42cf56a8f1e8dba26513c0631b7c3f689a9389a610958a5d3ade7f8ea326
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp312-cp312-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
79eb33c958039eb334f772e16fd9dcff1fb74797c2b9d89e5ef858c75936173f
BLAKE2b-256 checksum
How to use checksums
8da05e9c593004a36e9c7028cadd0b9472e6dac915ee2b3b69ddfcc969f54ce4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp312-cp312-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ff5444ef1a3f57d56a8a7b53eacb6254a93eadf54a74eae65b28e8fff118e9dd
BLAKE2b-256 checksum
How to use checksums
3a2af6b8aa397b2f1d01b958aefef88491131fff3829b7cb17abbabfde548b8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.43.1-cp311-cp311-win_amd64.whl

Download URL zen_engine-0.43.1-cp311-cp311-win_amd64.whl
Size 4.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
64ec118503c618fa4a2ed9a4e5b287c16343ed9c59bfb8c9ac97620701c75f6c
BLAKE2b-256 checksum
How to use checksums
25f1f09d4c971467cb469f4b848ab2a9cb95bdda150b0183fc061e236cc01194
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp311-cp311-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7f737f95e727e2fc997a01faf239b3ccea73f4e3002645ed9dee3fae2c76f135
BLAKE2b-256 checksum
How to use checksums
341927be889a7b923a396999b5e6f196492a6e2cfd786bd6764d5740ea921de3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp311-cp311-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
dcac8146cb94a50ea40e9e49d862e6e414a845c3c3c52272a82cf225a728532a
BLAKE2b-256 checksum
How to use checksums
43cd817c30cb9f08fe9f01aef397824281c4f85c59872abeffaeec3b28e4f688
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp311-cp311-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c5b289f4133746e47bcb074c823cf5d2a956615626348237a864ca065d73d5b2
BLAKE2b-256 checksum
How to use checksums
8d9ab16f48f73e81b545a71d197a39d82b0c6d9874f6668ac4c4ba568206a940
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp311-cp311-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a2b01f79149a32d8b8e8665bd0e714c11473d1875bebbe461a9b8b6a3ce2e2a3
BLAKE2b-256 checksum
How to use checksums
b81fa15ecb73bf631009d7e27fe974246684a15f7f1095fa966c9d7286abfa9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.43.1-cp310-cp310-win_amd64.whl

Download URL zen_engine-0.43.1-cp310-cp310-win_amd64.whl
Size 4.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
94c9bc1586973f186eb3d0e0f2175fc5ae1c87342ffc1d1bdf1d169b31519ca4
BLAKE2b-256 checksum
How to use checksums
722333234531e93a7ea4ac71b086a948384eb256ff9cd43f17ba1684f2946a5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp310-cp310-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
be3be26ba19128074731ff71bca43a37baf2cb0c49833110d43eefcdf9e8473c
BLAKE2b-256 checksum
How to use checksums
0f6137420f84d68039291f1c3f0804aaf2c60862796bcb8153feb24f10c3264e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp310-cp310-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3bf022759105570e71241ce64ad98b04eaea9c062bf8a3b1bb39267ac1ac3505
BLAKE2b-256 checksum
How to use checksums
c2c711344b11534f40b1dc8f7bec0e13894dd05cebd617f3f2f4d6e13b938e9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.43.1-cp39-cp39-win_amd64.whl

Download URL zen_engine-0.43.1-cp39-cp39-win_amd64.whl
Size 4.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
2a9b6afe034b38ea620876b48ea35a21d0a314521be4aa282f1876deffbf559c
BLAKE2b-256 checksum
How to use checksums
5df0fbbcab6f4f7fb2291cacbbcf48a3b9a426257d667746f54e17056adc03eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp39-cp39-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f020ce6befdae3b0cf6ad3cf6a8a03e9d396a80082fe38523ab4e5b1b95b9ca2
BLAKE2b-256 checksum
How to use checksums
459ba0a6c71c42b40ada5d342151f627bf1421cf402646716efc47c235ad08c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp39-cp39-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
4433e34f85be593a3ffe530289983b73d5394814ad6b750d8ec95ea103e4f79b
BLAKE2b-256 checksum
How to use checksums
4978579973eba0e7c5a376a8bef744a56d9b0b4425a48733be0b077448d509f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

Release files / zen_engine-0.43.1-cp38-cp38-win_amd64.whl

Download URL zen_engine-0.43.1-cp38-cp38-win_amd64.whl
Size 4.2 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
1c672c40e7d306e92ab42b07459e6ff155e2704addefda69828772a3775c21da
BLAKE2b-256 checksum
How to use checksums
d01f57c9b3482944c751852248d0490d4721be08550288d1bf88b3a372713d2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp38-cp38-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bcdfc4068f18de6c93681ceaca4cd9a53099a88f8bc26d4bc57224ce2503a64d
BLAKE2b-256 checksum
How to use checksums
6def9b83299c961a7f2ba094adf4c2a3ec8aa7e97cb4d0d1adeb38fd230b31ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

Download URL zen_engine-0.43.1-cp38-cp38-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e9a6a26ff052eb62843c6f3fec9761f49562649159e8144703cd7891a4ca0d3b
BLAKE2b-256 checksum
How to use checksums
b63f7c5ded266f130690995713f676773a8676c785080cab279592888cdeb3ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

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

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

Download URL zen_engine-0.43.1-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
08dbb7b3af81312cfc772efb01b4af91411aa9433ac79a3d48da076187558feb
BLAKE2b-256 checksum
How to use checksums
0935ae1db7d5cbb402275b13fe4d40dfca06d4148ff8f1f9a935864a2cef8983
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.6

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

33 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